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
-
Field Summary
Fields inherited from class org.codehaus.groovy.vmplugin.v8.Java8
elementTypeToTarget
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongetInvokeSpecialHandle
(Method method, Object receiver) Returns a handle with bound receiver to invokeSpecial the given method.getRecordComponentNames
(Class<?> maybeRecord) 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
Gives the version the plugin is made forinvokeHandle
(Object handle, Object[] args) Invokes a handle produced by #getInvokeSpecialdHandleprotected void
makeRecordComponents
(CompileUnit cu, ClassNode cn, Class<?> c) Methods inherited from class org.codehaus.groovy.vmplugin.v10.Java10
getPluginDefaultGroovyMethods
Methods inherited from class org.codehaus.groovy.vmplugin.v9.Java9
checkAccessible, checkCanSetAccessible, getDefaultImportClasses, getLookupConstructor, getPrivateLookup, newLookup, transformMetaMethod, trySetAccessible
Methods inherited from class org.codehaus.groovy.vmplugin.v8.Java8
configureAnnotation, configureAnnotationNodeFromDefinition, configureClassNode, configureTypeVariableDefinition, configureTypeVariableReference, doPrivileged, doPrivileged, fillParameterNames, getPluginStaticGroovyMethods, invalidateCallSites, makeClassNode, of, setAdditionalClassInformation, toAnnotationNode, transformMetaMethod
-
Constructor Details
-
Java16
public Java16()
-
-
Method Details
-
getVersion
public int getVersion()Description copied from interface:VMPlugin
Gives the version the plugin is made for- Specified by:
getVersion
in interfaceVMPlugin
- Overrides:
getVersion
in classJava10
- Returns:
- 7 for jdk7, 8 for jdk8, 9 for jdk9 or higher
-
getInvokeSpecialHandle
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 interfaceVMPlugin
- Overrides:
getInvokeSpecialHandle
in classJava8
- Returns:
- null in case of jdk<7, otherwise a handle that takes the method call arguments for the invokespecial call
-
invokeHandle
Description copied from interface:VMPlugin
Invokes a handle produced by #getInvokeSpecialdHandle- Specified by:
invokeHandle
in interfaceVMPlugin
- Overrides:
invokeHandle
in classJava8
- Parameters:
handle
- the handleargs
- arguments for the method call, can be empty but not null- Returns:
- the result of the method call
- Throws:
Throwable
-
makeRecordComponents
- Overrides:
makeRecordComponents
in classJava8
-
getRecordComponentNames
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
-