Package org.codehaus.groovy.vmplugin.v8
Class Java8
java.lang.Object
org.codehaus.groovy.vmplugin.v8.Java8
- All Implemented Interfaces:
VMPlugin
- Direct Known Subclasses:
Java9
Java 8 based functions.
- Since:
- 2.5.0
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleancheckAccessible(Class<?> callerClass, Class<?> declaringClass, int memberModifiers, boolean allowIllegalAccess) check whether the member can be accessed or notbooleancheckCanSetAccessible(AccessibleObject accessibleObject, Class<?> callerClass) The following scenarios can not set accessible, i.e.voidvoidconfigureAnnotationNodeFromDefinition(AnnotationNode definition, AnnotationNode root) voidconfigureClassNode(CompileUnit compileUnit, ClassNode classNode) static GenericsTypeconfigureTypeVariableDefinition(ClassNode base, ClassNode[] bounds) static ClassNode<T> TdoPrivileged(PrivilegedAction<T> action) Deprecated.<T> TdoPrivileged(PrivilegedExceptionAction<T> action) Deprecated.protected voidfillParameterNames(String[] names, Member member) getInvokeSpecialHandle(Method method, Object receiver) Returns a handle with bound receiver to invokeSpecial the given method.Class<?>[]Class<?>[]intGives the version the plugin is made forvoidinvokeHandle(Object handle, Object[] arguments) Invokes a handle produced by #getInvokeSpecialdHandleprotected ClassNodemakeClassNode(CompileUnit cu, Type t, Class<?> c) protected voidmakeRecordComponents(CompileUnit cu, ClassNode classNode, Class<?> clazz) protected MethodHandles.Lookupstatic MethodHandles.LookupDeprecated.voidprotected AnnotationNodetoAnnotationNode(Annotation annotation) transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod) transform meta method.transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod, Class<?> caller) transform meta methodbooleanSet theaccessibleflag for this reflected object totrueif possible.Methods 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
getDefaultImportClasses, getRecordComponentNames
-
Field Details
-
elementTypeToTarget
-
-
Constructor Details
-
Java8
public Java8()
-
-
Method Details
-
configureTypeVariableDefinition
-
configureTypeVariableReference
-
getPluginDefaultGroovyMethods
- Specified by:
getPluginDefaultGroovyMethodsin interfaceVMPlugin
-
getPluginStaticGroovyMethods
- Specified by:
getPluginStaticGroovyMethodsin interfaceVMPlugin
-
getVersion
public int getVersion()Description copied from interface:VMPluginGives the version the plugin is made for- Specified by:
getVersionin interfaceVMPlugin- Returns:
- 7 for jdk7, 8 for jdk8, 9 for jdk9 or higher
-
setAdditionalClassInformation
- Specified by:
setAdditionalClassInformationin interfaceVMPlugin
-
configureAnnotation
- Specified by:
configureAnnotationin interfaceVMPlugin
-
toAnnotationNode
-
configureAnnotationNodeFromDefinition
- Specified by:
configureAnnotationNodeFromDefinitionin interfaceVMPlugin
-
configureClassNode
- Specified by:
configureClassNodein interfaceVMPlugin
-
makeRecordComponents
-
makeClassNode
-
fillParameterNames
-
checkCanSetAccessible
The following scenarios can not set accessible, i.e. the return value is false 1) SecurityException occurred 2) the accessible object is a Constructor object for the Class class- Specified by:
checkCanSetAccessiblein interfaceVMPlugin- Parameters:
accessibleObject- the accessible object to checkcallerClass- the callerClass to invokesetAccessible- Returns:
- the check result
-
checkAccessible
public boolean checkAccessible(Class<?> callerClass, Class<?> declaringClass, int memberModifiers, boolean allowIllegalAccess) Description copied from interface:VMPlugincheck whether the member can be accessed or not- Specified by:
checkAccessiblein interfaceVMPlugin- Parameters:
callerClass- callerClass the callerClass to invokesetAccessibledeclaringClass- the type of member ownermemberModifiers- modifiers of memberallowIllegalAccess- whether to allow illegal access- Returns:
- the result of checking
-
trySetAccessible
Description copied from interface:VMPluginSet theaccessibleflag for this reflected object totrueif possible.- Specified by:
trySetAccessiblein interfaceVMPlugin- 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- Parameters:
metaClass- metaclassmetaMethod- the original meta method- Returns:
- the transformed meta method
-
transformMetaMethod
Description copied from interface:VMPlugintransform meta method- Specified by:
transformMetaMethodin interfaceVMPlugin- Parameters:
metaClass- metaclassmetaMethod- the original meta methodcaller- caller class, whose method sets accessible for methods- Returns:
- the transformed meta method
-
invalidateCallSites
public void invalidateCallSites()- Specified by:
invalidateCallSitesin interfaceVMPlugin
-
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- 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- Parameters:
handle- the handlearguments- arguments for the method call, can be empty but not null- Returns:
- the result of the method call
- Throws:
Throwable
-
of
Deprecated. -
newLookup
-
doPrivileged
Deprecated.Description copied from interface:VMPluginPerforms the specified PrivilegedAction with privileges enabled on platforms which support that capability, otherwise the action is performed ignoring privileges.- Specified by:
doPrivilegedin interfaceVMPlugin- Type Parameters:
T- the type of the value returned by the PrivilegedAction's run method- Parameters:
action- the action to be performed- Returns:
- the value returned by the action's run method
-
doPrivileged
Deprecated.Description copied from interface:VMPluginPerforms the specified PrivilegedExceptionAction with privileges enabled on platforms which support that capability, otherwise the action is performed ignoring privileges.- Specified by:
doPrivilegedin interfaceVMPlugin- Type Parameters:
T- the type of the value returned by the PrivilegedAction's run method- Parameters:
action- the action to be performed- Returns:
- the value returned by the action's run method
-