Package org.codehaus.groovy.vmplugin.v16

# Class Java16

java.lang.Object
org.codehaus.groovy.vmplugin.v8.Java8
org.codehaus.groovy.vmplugin.v9.Java9
org.codehaus.groovy.vmplugin.v10.Java10
org.codehaus.groovy.vmplugin.v16.Java16

All Implemented Interfaces:
  `VMPlugin`

Direct Known Subclasses:
  `Java17`

@Deprecated(since="6.0.0", forRemoval=true) public class Java16 extends Java10
Deprecated, for removal: This API element is subject to removal in a future version.
Use `Java17` instead. Groovy 6.0 requires JDK 17+.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Java16()`
  Deprecated, for removal: This API element is subject to removal in a future version.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `getInvokeSpecialHandle(Method method, Object receiver)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns a handle with bound receiver to invokeSpecial the given method.
  `List<String>`
  `getRecordComponentNames(Class<?> maybeRecord)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns the list of record component names or the empty list if the class is not a record or running on a pre16 JDK.
  `int`
  `getVersion()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Gives the version the plugin is made for
  `Object`
  `invokeHandle(Object handle, Object[] args)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Invokes a handle produced by #getInvokeSpecialdHandle
  `protected void`
  `makeRecordComponents(CompileUnit cu, ClassNode cn, Class<?> c)`
  Deprecated, for removal: This API element is subject to removal in a future version.

  ### Methods inherited from class org.codehaus.groovy.vmplugin.v10.Java10

  `getPluginDefaultGroovyMethods`

  ### Methods inherited from class org.codehaus.groovy.vmplugin.v9.Java9

  `checkAccessible, checkCanSetAccessible, getDefaultImportClasses, newLookup, transformMetaMethod, trySetAccessible`

  ### Methods inherited from class org.codehaus.groovy.vmplugin.v8.Java8

  `configureAnnotation, configureClassNode, configureTypeVariableDefinition, configureTypeVariableReference, fillParameterNames, getPluginStaticGroovyMethods, getValue, invalidateCallSites, makeClassNode, of, setAdditionalClassInformation, toAnnotationNode, transformMetaMethod`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.codehaus.groovy.vmplugin.VMPlugin

  `configureAnnotationNodeFromDefinition`

- ## Constructor Details

  - ### Java16

    public Java16()
    Deprecated, for removal: This API element is subject to removal in a future version.

- ## Method Details

  - ### getVersion

    public int getVersion()
    Deprecated, for removal: This API element is subject to removal in a future version.
    Description copied from interface: `VMPlugin`
    Gives the version the plugin is made for
    Specified by:
      `getVersion` in interface `VMPlugin`
    Overrides:
      `getVersion` in class `Java10`
    Returns:
      7 for jdk7, 8 for jdk8, 9 for jdk9 or higher

  - ### getInvokeSpecialHandle

    public Object getInvokeSpecialHandle(Method method, Object receiver)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Description copied from interface: `VMPlugin`
    Returns a handle with bound receiver to invokeSpecial the given method. This method will require at least Java 7, but since the source has to compile on older Java versions as well it is not marked to return a MethodHandle and uses Object instead
    Specified by:
      `getInvokeSpecialHandle` in interface `VMPlugin`
    Overrides:
      `getInvokeSpecialHandle` in class `Java8`
    Returns:
      null in case of jdk<7, otherwise a handle that takes the method call arguments for the invokespecial call

  - ### invokeHandle

    public Object invokeHandle(Object handle, Object[] args) throws Throwable
    Deprecated, for removal: This API element is subject to removal in a future version.
    Description copied from interface: `VMPlugin`
    Invokes a handle produced by #getInvokeSpecialdHandle
    Specified by:
      `invokeHandle` in interface `VMPlugin`
    Overrides:
      `invokeHandle` in class `Java8`
    Parameters:
      `handle` - the handle
      `args` - arguments for the method call, can be empty but not null
    Returns:
      the result of the method call
    Throws:
      `Throwable`

  - ### makeRecordComponents

    protected void makeRecordComponents(CompileUnit cu, ClassNode cn, Class<?> c)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Overrides:
      `makeRecordComponents` in class `Java8`

  - ### getRecordComponentNames

    @Incubating public List<String> getRecordComponentNames(Class<?> maybeRecord)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Description copied from interface: `VMPlugin`
    Returns the list of record component names or the empty list if the class is not a record or running on a pre16 JDK.
    Parameters:
      `maybeRecord` - the class in question
    Returns:
      the default list of names