public interface VMPlugin
Interface to access VM version based actions. This interface is for internal use only!
Type Params | Return Type | Name and description |
---|---|---|
|
public boolean |
checkAccessible(Class<?> callerClass, Class<?> declaringClass, int memberModifiers, boolean allowIllegalAccess) check whether the member can be accessed or not |
|
public boolean |
checkCanSetAccessible(AccessibleObject accessibleObject, Class<?> callerClass) Check whether invoking AccessibleObject.setAccessible on the accessible object will be completed successfully |
|
public void |
configureAnnotation(AnnotationNode an) |
|
public void |
configureAnnotationNodeFromDefinition(AnnotationNode definition, AnnotationNode root) |
|
public void |
configureClassNode(CompileUnit compileUnit, ClassNode classNode) |
<T> |
public T |
doPrivileged(PrivilegedAction<T> action) Performs the specified PrivilegedAction with privileges enabled on platforms which support that capability, otherwise the action is performed ignoring privileges. |
<T> |
public T |
doPrivileged(PrivilegedExceptionAction<T> action) Performs the specified PrivilegedExceptionAction with privileges enabled on platforms which support that capability, otherwise the action is performed ignoring privileges. |
|
public Map<String, Set<String>> |
getDefaultImportClasses(String[] packageNames) Returns the default import classes: class name -> the relevant package names |
|
public Object |
getInvokeSpecialHandle(Method m, Object receiver) Returns a handle with bound receiver to invokeSpecial the given method. |
|
public static String |
getJavaVersion() Returns java version, e.g. 1.8, 9, 11, 17 |
|
public Class[] |
getPluginDefaultGroovyMethods() |
|
public Class[] |
getPluginStaticGroovyMethods() |
|
public List<String> |
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. |
|
public int |
getVersion() Gives the version the plugin is made for |
|
public void |
invalidateCallSites() |
|
public Object |
invokeHandle(Object handle, Object[] args) Invokes a handle produced by #getInvokeSpecialdHandle |
|
public void |
setAdditionalClassInformation(ClassNode c) |
|
public MetaMethod |
transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod, Class<?> caller) transform meta method |
|
public MetaMethod |
transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod) transform meta method. |
|
public 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
Performs the specified PrivilegedAction with privileges enabled on platforms which support that capability, otherwise the action is performed ignoring privileges.
action
- the action to be performedT
- the type of the value returned by the PrivilegedAction's run methodPerforms the specified PrivilegedExceptionAction with privileges enabled on platforms which support that capability, otherwise the action is performed ignoring privileges.
action
- the action to be performedT
- the type of the value returned by the PrivilegedAction's run methodReturns 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
Returns java version, e.g. 1.8, 9, 11, 17
Returns the list of record component names or the empty list if the class is not a record or running on a pre16 JDK.
maybeRecord
- the class in questionGives 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
- metaclassmetaMethod
- the original meta methodcaller
- caller class, whose method sets accessible for methodstransform meta method.
metaClass
- metaclassmetaMethod
- 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.