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
Constructors -
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.intGives the version the plugin is made forinvokeHandle(Object handle, Object[] args) Invokes a handle produced by #getInvokeSpecialdHandleprotected voidmakeRecordComponents(CompileUnit cu, ClassNode cn, Class<?> c) Methods inherited from class org.codehaus.groovy.vmplugin.v10.Java10
getPluginDefaultGroovyMethodsMethods inherited from class org.codehaus.groovy.vmplugin.v9.Java9
checkAccessible, checkCanSetAccessible, getDefaultImportClasses, getLookupConstructor, getPrivateLookup, newLookup, transformMetaMethod, trySetAccessibleMethods 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:VMPluginGives the version the plugin is made for- Specified by:
getVersionin interfaceVMPlugin- Overrides:
getVersionin classJava10- Returns:
- 7 for jdk7, 8 for jdk8, 9 for jdk9 or higher
-
getInvokeSpecialHandle
Description copied from interface:VMPluginReturns 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:
getInvokeSpecialHandlein interfaceVMPlugin- Overrides:
getInvokeSpecialHandlein 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:VMPluginInvokes a handle produced by #getInvokeSpecialdHandle- Specified by:
invokeHandlein interfaceVMPlugin- Overrides:
invokeHandlein 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:
makeRecordComponentsin classJava8
-
getRecordComponentNames
Description copied from interface:VMPluginReturns 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
-