public interface VMPlugin
Interface to access VM version based actions. This interface is for internal use only!
Type Params | Return Type | Name and description |
---|---|---|
|
boolean |
checkAccessible(Class<?> callerClass, Class<?> declaringClass, int memberModifiers, boolean allowIllegalAccess) check whether the member can be accessed or not |
|
boolean |
checkCanSetAccessible(AccessibleObject accessibleObject, Class<?> callerClass) Check whether invoking AccessibleObject.setAccessible on the accessible object will be completed successfully |
|
void |
configureAnnotation(AnnotationNode an) |
|
void |
configureAnnotationNodeFromDefinition(AnnotationNode definition, AnnotationNode root) |
|
void |
configureClassNode(CompileUnit compileUnit, ClassNode classNode) |
|
Map<String, Set<String>> |
getDefaultImportClasses(String[] packageNames) Returns the default import classes: class name -> the relevant package names |
|
Object |
getInvokeSpecialHandle(Method m, Object receiver) Returns a handle with bound receiver to invokeSpecial the given method. |
|
Class[] |
getPluginDefaultGroovyMethods() |
|
Class[] |
getPluginStaticGroovyMethods() |
|
int |
getVersion() Gives the version the plugin is made for |
|
void |
invalidateCallSites() |
|
Object |
invokeHandle(Object handle, Object[] args) Invokes a handle produced by #getInvokeSpecialdHandle |
|
void |
setAdditionalClassInformation(ClassNode c) |
|
MetaMethod |
transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod, Class<?> caller) transform meta method |
|
MetaMethod |
transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod) transform meta method. |
|
boolean |
trySetAccessible(AccessibleObject ao) Set the accessible flag for this reflected object to true
if possible. |
check whether the member can be accessed or not
callerClass
- callerClass the callerClass to invoke setAccessible
declaringClass
- the type of member ownermemberModifiers
- modifiers of memberallowIllegalAccess
- whether to allow illegal accessCheck whether invoking AccessibleObject.setAccessible on the accessible object will be completed successfully
accessibleObject
- the accessible object to checkcallerClass
- the callerClass to invoke setAccessible
Returns the default import classes: class name -> the relevant package names
packageNames
- the default import package names, e.g. java.lang.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
Gives the version the plugin is made for
Invokes a handle produced by #getInvokeSpecialdHandle
handle
- the handleargs
- arguments for the method call, can be empty but not nulltransform meta method
metaClass
- meta classmetaMethod
- the original meta methodcaller
- caller class, whose method sets accessible for methodstransform meta method.
metaClass
- meta classmetaMethod
- the original meta method Set the accessible
flag for this reflected object to true
if possible.
ao
- the accessible objecttrue
if the accessible
flag is set to true
;
false
if access cannot be enabled.