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
public class Java9 extends Java8
Additional Java 9 based functions will be added here as needed.
- 
Constructor SummaryConstructors Constructor Description Java9()
- 
Method SummaryModifier and Type Method Description booleancheckAccessible(java.lang.Class<?> accessingClass, java.lang.Class<?> declaringClass, int memberModifiers, boolean allowIllegalAccess)check whether the member can be accessed or notbooleancheckCanSetAccessible(java.lang.reflect.AccessibleObject accessibleObject, java.lang.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:java.util.Map<java.lang.String,java.util.Set<java.lang.String>>getDefaultImportClasses(java.lang.String[] packageNames)Returns the default import classes: class name -> the relevant package namesjava.lang.ObjectgetInvokeSpecialHandle(java.lang.reflect.Method method, java.lang.Object receiver)Returns a handle with bound receiver to invokeSpecial the given method.intgetVersion()Gives the version the plugin is made forstatic java.lang.invoke.MethodHandles.Lookupof(java.lang.Class<?> targetClass)MetaMethodtransformMetaMethod(MetaClass metaClass, MetaMethod metaMethod, java.lang.Class<?> caller)transform meta methodbooleantrySetAccessible(java.lang.reflect.AccessibleObject ao)Set theaccessibleflag for this reflected object totrueif possible.Methods inherited from class org.codehaus.groovy.vmplugin.v8.Java8configureAnnotation, configureAnnotationNodeFromDefinition, configureClassNode, configureTypeVariableDefinition, configureTypeVariableReference, fillParameterNames, getElementCode, getPluginDefaultGroovyMethods, getPluginStaticGroovyMethods, invalidateCallSites, invokeHandle, makeParameter, processParameters, setAdditionalClassInformation, transformMetaMethodMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- 
Constructor Details- 
Java9public Java9()
 
- 
- 
Method Details- 
getVersionpublic int getVersion()Description copied from interface:VMPluginGives the version the plugin is made for- Specified by:
- getVersionin interface- VMPlugin
- Overrides:
- getVersionin class- Java8
- Returns:
- 7 for jdk7, 8 for jdk8, 9 for jdk9 or higher
 
- 
getDefaultImportClassespublic java.util.Map<java.lang.String,java.util.Set<java.lang.String>> getDefaultImportClasses(java.lang.String[] packageNames)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
 
- 
ofpublic static java.lang.invoke.MethodHandles.Lookup of(java.lang.Class<?> targetClass)
- 
getInvokeSpecialHandlepublic java.lang.Object getInvokeSpecialHandle(java.lang.reflect.Method method, java.lang.Object receiver)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 interface- VMPlugin
- Overrides:
- getInvokeSpecialHandlein class- Java8
- Returns:
- null in case of jdk<7, otherwise a handle that takes the method call arguments for the invokespecial call
 
- 
checkCanSetAccessiblepublic boolean checkCanSetAccessible(java.lang.reflect.AccessibleObject accessibleObject, java.lang.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: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 interface- VMPlugin
- Overrides:
- checkCanSetAccessiblein class- Java8
- Parameters:
- accessibleObject- the accessible object to check
- callerClass- the callerClass to invoke- setAccessible
- Returns:
- the check result
 
- 
trySetAccessiblepublic boolean trySetAccessible(java.lang.reflect.AccessibleObject ao)Description copied from interface:VMPluginSet theaccessibleflag for this reflected object totrueif possible.- Specified by:
- trySetAccessiblein interface- VMPlugin
- Overrides:
- trySetAccessiblein class- Java8
- Parameters:
- ao- the accessible object
- Returns:
- trueif the- accessibleflag is set to- true;- falseif access cannot be enabled.
 
- 
transformMetaMethodpublic MetaMethod transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod, java.lang.Class<?> caller)Description copied from interface:VMPlugintransform meta method- Specified by:
- transformMetaMethodin interface- VMPlugin
- Overrides:
- transformMetaMethodin class- Java8
- Parameters:
- metaClass- meta class
- metaMethod- the original meta method
- caller- caller class, whose method sets accessible for methods
- Returns:
- the transformed meta method
 
- 
checkAccessiblepublic boolean checkAccessible(java.lang.Class<?> accessingClass, java.lang.Class<?> declaringClass, int memberModifiers, boolean allowIllegalAccess)Description copied from interface:VMPlugincheck whether the member can be accessed or not- Specified by:
- checkAccessiblein interface- VMPlugin
- Overrides:
- checkAccessiblein class- Java8
- Parameters:
- accessingClass- 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
 
 
-