Package org.codehaus.groovy.vmplugin.v8

# Class Java8

java.lang.Object
org.codehaus.groovy.vmplugin.v8.Java8

All Implemented Interfaces:
  `VMPlugin`

Direct Known Subclasses:
  `Java9`

@Deprecated(since="6.0.0", forRemoval=true) public class Java8 extends Object implements VMPlugin
Deprecated, for removal: This API element is subject to removal in a future version.
Use `Java17` instead. Groovy 6.0 requires JDK 17+.
Java 8 based functions.

Since:
  2.5.0

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `checkAccessible(Class<?> callerClass, Class<?> declaringClass, int memberModifiers, boolean allowIllegalAccess)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  check whether the member can be accessed or not
  `boolean`
  `checkCanSetAccessible(AccessibleObject accessibleObject, Class<?> callerClass)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  The following scenarios can not set accessible, i.e.
  `void`
  `configureAnnotation(AnnotationNode node)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `void`
  `configureClassNode(CompileUnit compileUnit, ClassNode classNode)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `static GenericsType`
  `configureTypeVariableDefinition(ClassNode base, ClassNode[] bounds)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `static ClassNode`
  `configureTypeVariableReference(String name)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `protected void`
  `fillParameterNames(String[] names, Member member)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `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.
  `Class<?>[]`
  `getPluginDefaultGroovyMethods()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `Class<?>[]`
  `getPluginStaticGroovyMethods()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `protected Expression`
  `getValue(Field field)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns the initial expression for given field.
  `int`
  `getVersion()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Gives the version the plugin is made for
  `void`
  `invalidateCallSites()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `Object`
  `invokeHandle(Object handle, Object[] arguments)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Invokes a handle produced by #getInvokeSpecialdHandle
  `protected ClassNode`
  `makeClassNode(CompileUnit cu, Type t, Class<?> c)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `protected void`
  `makeRecordComponents(CompileUnit cu, ClassNode classNode, Class<?> clazz)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `protected MethodHandles.Lookup`
  `newLookup(Class<?> targetClass)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `static MethodHandles.Lookup`
  `of(Class<?> targetClass)`
  Deprecated.
  `void`
  `setAdditionalClassInformation(ClassNode cn)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `protected AnnotationNode`
  `toAnnotationNode(Annotation annotation)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  `MetaMethod`
  `transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  transform meta method.
  `MetaMethod`
  `transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod, Class<?> caller)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  transform meta method
  `boolean`
  `trySetAccessible(AccessibleObject ao)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Set the `accessible` flag for this reflected object to `true` if possible.

  ### 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, getDefaultImportClasses, getRecordComponentNames`

- ## Constructor Details

  - ### Java8

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

- ## Method Details

  - ### configureTypeVariableDefinition

    public static GenericsType configureTypeVariableDefinition(ClassNode base, ClassNode[] bounds)
    Deprecated, for removal: This API element is subject to removal in a future version.

  - ### configureTypeVariableReference

    public static ClassNode configureTypeVariableReference(String name)
    Deprecated, for removal: This API element is subject to removal in a future version.

  - ### getPluginDefaultGroovyMethods

    public Class<?>[] getPluginDefaultGroovyMethods()
    Deprecated, for removal: This API element is subject to removal in a future version.
    Specified by:
      `getPluginDefaultGroovyMethods` in interface `VMPlugin`

  - ### getPluginStaticGroovyMethods

    public Class<?>[] getPluginStaticGroovyMethods()
    Deprecated, for removal: This API element is subject to removal in a future version.
    Specified by:
      `getPluginStaticGroovyMethods` in interface `VMPlugin`

  - ### 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`
    Returns:
      7 for jdk7, 8 for jdk8, 9 for jdk9 or higher

  - ### setAdditionalClassInformation

    public void setAdditionalClassInformation(ClassNode cn)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Specified by:
      `setAdditionalClassInformation` in interface `VMPlugin`

  - ### configureAnnotation

    public void configureAnnotation(AnnotationNode node)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Specified by:
      `configureAnnotation` in interface `VMPlugin`

  - ### toAnnotationNode

    protected AnnotationNode toAnnotationNode(Annotation annotation)
    Deprecated, for removal: This API element is subject to removal in a future version.

  - ### configureClassNode

    public void configureClassNode(CompileUnit compileUnit, ClassNode classNode)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Specified by:
      `configureClassNode` in interface `VMPlugin`

  - ### getValue

    protected Expression getValue(Field field)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns the initial expression for given field.
    Returns:
      value expression or null
    Since:
      5.0.0

  - ### makeRecordComponents

    protected void makeRecordComponents(CompileUnit cu, ClassNode classNode, Class<?> clazz)
    Deprecated, for removal: This API element is subject to removal in a future version.

  - ### makeClassNode

    protected ClassNode makeClassNode(CompileUnit cu, Type t, Class<?> c)
    Deprecated, for removal: This API element is subject to removal in a future version.

  - ### fillParameterNames

    protected void fillParameterNames(String[] names, Member member)
    Deprecated, for removal: This API element is subject to removal in a future version.

  - ### checkCanSetAccessible

    public boolean checkCanSetAccessible(AccessibleObject accessibleObject, Class<?> callerClass)
    Deprecated, for removal: This API element is subject to removal in a future version.
    The following scenarios can not set accessible, i.e. the return value is false 1) SecurityException occurred 2) the accessible object is a Constructor object for the Class class
    Specified by:
      `checkCanSetAccessible` in interface `VMPlugin`
    Parameters:
      `accessibleObject` - the accessible object to check
      `callerClass` - the callerClass to invoke `setAccessible`
    Returns:
      the check result

  - ### checkAccessible

    public boolean checkAccessible(Class<?> callerClass, Class<?> declaringClass, int memberModifiers, boolean allowIllegalAccess)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Description copied from interface: `VMPlugin`
    check whether the member can be accessed or not
    Specified by:
      `checkAccessible` in interface `VMPlugin`
    Parameters:
      `callerClass` - callerClass the callerClass to invoke `setAccessible`
      `declaringClass` - the type of member owner
      `memberModifiers` - modifiers of member
      `allowIllegalAccess` - whether to allow illegal access
    Returns:
      the result of checking

  - ### trySetAccessible

    public boolean trySetAccessible(AccessibleObject ao)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Description copied from interface: `VMPlugin`
    Set the `accessible` flag for this reflected object to `true` if possible.
    Specified by:
      `trySetAccessible` in interface `VMPlugin`
    Parameters:
      `ao` - the accessible object
    Returns:
      `true` if the `accessible` flag is set to `true`; `false` if access cannot be enabled.

  - ### transformMetaMethod

    public MetaMethod transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Description copied from interface: `VMPlugin`
    transform meta method.
    Specified by:
      `transformMetaMethod` in interface `VMPlugin`
    Parameters:
      `metaClass` - metaclass
      `metaMethod` - the original meta method
    Returns:
      the transformed meta method

  - ### transformMetaMethod

    public MetaMethod transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod, Class<?> caller)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Description copied from interface: `VMPlugin`
    transform meta method
    Specified by:
      `transformMetaMethod` in interface `VMPlugin`
    Parameters:
      `metaClass` - metaclass
      `metaMethod` - the original meta method
      `caller` - caller class, whose method sets accessible for methods
    Returns:
      the transformed meta method

  - ### invalidateCallSites

    public void invalidateCallSites()
    Deprecated, for removal: This API element is subject to removal in a future version.
    Specified by:
      `invalidateCallSites` in interface `VMPlugin`

  - ### 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`
    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[] arguments) 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`
    Parameters:
      `handle` - the handle
      `arguments` - arguments for the method call, can be empty but not null
    Returns:
      the result of the method call
    Throws:
      `Throwable`

  - ### of

    @Deprecated(since="5.0.0") public static MethodHandles.Lookup of(Class<?> targetClass)
    Deprecated.

  - ### newLookup

    protected MethodHandles.Lookup newLookup(Class<?> targetClass)
    Deprecated, for removal: This API element is subject to removal in a future version.