Package org.codehaus.groovy.vmplugin.v9
Class Java9
java.lang.Object
org.codehaus.groovy.vmplugin.v8.Java8
org.codehaus.groovy.vmplugin.v9.Java9
- All Implemented Interfaces:
VMPlugin
- Direct Known Subclasses:
Java10
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleancheckAccessible(Class<?> accessingClass, Class<?> declaringClass, int memberModifiers, boolean allowIllegalAccess) check whether the member can be accessed or notbooleancheckCanSetAccessible(AccessibleObject accessibleObject, Class<?> callerClass) This method may be used by a caller in class C to check whether to enable access to a member of declaring class D successfully ifJava8.checkCanSetAccessible(java.lang.reflect.AccessibleObject, java.lang.Class)returns true and any of the following hold:getDefaultImportClasses(String[] packageNames) Returns the default import classes: class name -> the relevant package namesprotected static Constructor<MethodHandles.Lookup>Class<?>[]protected static MethodintGives the version the plugin is made forprotected MethodHandles.LookuptransformMetaMethod(MetaClass metaClass, MetaMethod metaMethod, Class<?> caller) transform meta methodbooleanSet theaccessibleflag for this reflected object totrueif possible.Methods inherited from class org.codehaus.groovy.vmplugin.v8.Java8
configureAnnotation, configureAnnotation, configureAnnotationNodeFromDefinition, configureClassNode, configureTypeVariableDefinition, configureTypeVariableReference, doPrivileged, doPrivileged, fillParameterNames, getElementCode, getInvokeSpecialHandle, getLookup, getPluginStaticGroovyMethods, invalidateCallSites, invokeHandle, makeClassNode, makeRecordComponents, of, setAdditionalClassInformation, transformMetaMethodMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.vmplugin.VMPlugin
getRecordComponentNames
-
Constructor Details
-
Java9
public Java9()
-
-
Method Details
-
getVersion
public int getVersion()Description copied from interface:VMPluginGives the version the plugin is made for- Specified by:
getVersionin interfaceVMPlugin- Overrides:
getVersionin classJava8- Returns:
- 7 for jdk7, 8 for jdk8, 9 for jdk9 or higher
-
getPluginDefaultGroovyMethods
- Specified by:
getPluginDefaultGroovyMethodsin interfaceVMPlugin- Overrides:
getPluginDefaultGroovyMethodsin classJava8
-
getDefaultImportClasses
Description copied from interface:VMPluginReturns the default import classes: class name -> the relevant package names- Parameters:
packageNames- the default import package names, e.g. java.lang.- Returns:
- the default import classes
-
newLookup
-
getLookupConstructor
-
getPrivateLookup
-
checkCanSetAccessible
This method may be used by a caller in class C to check whether to enable access to a member of declaring class D successfully ifJava8.checkCanSetAccessible(java.lang.reflect.AccessibleObject, java.lang.Class)returns true and any of the following hold:1) C and D are in the same module. 2) The member is public and D is public in a package that the module containing D exports to at least the module containing C. 3) The member is protected static, D is public in a package that the module containing D exports to at least the module containing C, and C is a subclass of D. 4) D is in a package that the module containing D opens to at least the module containing C. All packages in unnamed and open modules are open to all modules and so this method always succeeds when D is in an unnamed or open module.
- Specified by:
checkCanSetAccessiblein interfaceVMPlugin- Overrides:
checkCanSetAccessiblein classJava8- Parameters:
accessibleObject- the accessible object to checkcallerClass- the class wishing to invokesetAccessible- Returns:
- the check result
-
trySetAccessible
Description copied from interface:VMPluginSet theaccessibleflag for this reflected object totrueif possible.- Specified by:
trySetAccessiblein interfaceVMPlugin- Overrides:
trySetAccessiblein classJava8- Parameters:
ao- the accessible object- Returns:
trueif theaccessibleflag is set totrue;falseif access cannot be enabled.
-
transformMetaMethod
Description copied from interface:VMPlugintransform meta method- Specified by:
transformMetaMethodin interfaceVMPlugin- Overrides:
transformMetaMethodin classJava8- Parameters:
metaClass- metaclassmetaMethod- the original meta methodcaller- caller class, whose method sets accessible for methods- Returns:
- the transformed meta method
-
checkAccessible
public boolean checkAccessible(Class<?> accessingClass, Class<?> declaringClass, int memberModifiers, boolean allowIllegalAccess) Description copied from interface:VMPlugincheck whether the member can be accessed or not- Specified by:
checkAccessiblein interfaceVMPlugin- Overrides:
checkAccessiblein classJava8- Parameters:
accessingClass- callerClass the callerClass to invokesetAccessibledeclaringClass- the type of member ownermemberModifiers- modifiers of memberallowIllegalAccess- whether to allow illegal access- Returns:
- the result of checking
-