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
    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
    Deprecated, for removal: This API element is subject to removal in a future version.
    Copies runtime annotation metadata into the supplied annotation node.
    void
    configureClassNode(CompileUnit compileUnit, ClassNode classNode)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Configures the supplied class node from its runtime type information.
    Deprecated, for removal: This API element is subject to removal in a future version.
    Configures a type-variable definition node from its bounds.
    static ClassNode
    Deprecated, for removal: This API element is subject to removal in a future version.
    Creates a placeholder class node that references a type variable by name.
    protected void
    fillParameterNames(String[] names, Member member)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Populates parameter names from the supplied reflective executable member.
    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<?>[]
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns plugin-specific default Groovy methods.
    Class<?>[]
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns plugin-specific static Groovy methods.
    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
    Deprecated, for removal: This API element is subject to removal in a future version.
    Gives the version the plugin is made for
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Invalidates cached call sites maintained by the plugin.
    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
    Deprecated, for removal: This API element is subject to removal in a future version.
    Creates or reuses a class node for the supplied runtime and generic type information.
    protected void
    makeRecordComponents(CompileUnit cu, ClassNode classNode, Class<?> clazz)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Adds record components to the class node when supported by the runtime.
    newLookup(Class<?> targetClass)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Creates a lookup capable of accessing members declared by the target class.
    of(Class<?> targetClass)
    Deprecated.
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Adds VM-specific metadata to the given class node.
    protected AnnotationNode
    Deprecated, for removal: This API element is subject to removal in a future version.
    Converts a runtime annotation instance into a Groovy AST annotation node.
    transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod)
    Deprecated, for removal: This API element is subject to removal in a future version.
    transform meta method.
    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
    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.
      Configures a type-variable definition node from its bounds.
      Parameters:
      base - the placeholder class node
      bounds - the upper bounds of the type variable
      Returns:
      the configured generics type
    • configureTypeVariableReference

      public static ClassNode configureTypeVariableReference(String name)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates a placeholder class node that references a type variable by name.
      Parameters:
      name - the type-variable name
      Returns:
      the placeholder class node
    • getPluginDefaultGroovyMethods

      public Class<?>[] getPluginDefaultGroovyMethods()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns plugin-specific default Groovy methods.
      Specified by:
      getPluginDefaultGroovyMethods in interface VMPlugin
      Returns:
      the default Groovy method classes contributed by this plugin
    • getPluginStaticGroovyMethods

      public Class<?>[] getPluginStaticGroovyMethods()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns plugin-specific static Groovy methods.
      Specified by:
      getPluginStaticGroovyMethods in interface VMPlugin
      Returns:
      the static Groovy method classes contributed by this plugin
    • getVersion

      public int getVersion()
      Deprecated, for removal: This API element is subject to removal in a future version.
      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.
      Adds VM-specific metadata to the given class node.
      Specified by:
      setAdditionalClassInformation in interface VMPlugin
      Parameters:
      cn - the class node to enrich
    • configureAnnotation

      public void configureAnnotation(AnnotationNode node)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Copies runtime annotation metadata into the supplied annotation node.
      Specified by:
      configureAnnotation in interface VMPlugin
      Parameters:
      node - the annotation node to configure
    • toAnnotationNode

      protected AnnotationNode toAnnotationNode(Annotation annotation)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Converts a runtime annotation instance into a Groovy AST annotation node.
      Parameters:
      annotation - the runtime annotation
      Returns:
      the corresponding annotation node
    • configureClassNode

      public void configureClassNode(CompileUnit compileUnit, ClassNode classNode)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Configures the supplied class node from its runtime type information.
      Specified by:
      configureClassNode in interface VMPlugin
      Parameters:
      compileUnit - the compile unit that owns the class node
      classNode - the class node to configure
    • 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.
      Adds record components to the class node when supported by the runtime.
      Parameters:
      cu - the owning compile unit
      classNode - the class node to update
      clazz - the runtime class
    • makeClassNode

      protected ClassNode makeClassNode(CompileUnit cu, Type t, Class<?> c)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates or reuses a class node for the supplied runtime and generic type information.
      Parameters:
      cu - the owning compile unit
      t - the reflective type
      c - the erased runtime class
      Returns:
      the resolved class node
    • fillParameterNames

      protected void fillParameterNames(String[] names, Member member)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Populates parameter names from the supplied reflective executable member.
      Parameters:
      names - the destination array for parameter names
      member - the reflective member providing parameter metadata
    • 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.
      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.
      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.
      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.
      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.
      Invalidates cached call sites maintained by the plugin.
      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.
      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.
      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.
      Returns a private lookup for the supplied target class using the active VM plugin.
      Parameters:
      targetClass - the class to create a lookup for
      Returns:
      a lookup with private access to targetClass
    • newLookup

      protected MethodHandles.Lookup newLookup(Class<?> targetClass)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates a lookup capable of accessing members declared by the target class.
      Parameters:
      targetClass - the lookup target
      Returns:
      a lookup for the target class