[Java] Class IndyInterface
- org.codehaus.groovy.vmplugin.v7.IndyInterface
@Deprecated public class IndyInterface extends Object
Bytecode level interface for bootstrap methods used by invokedynamic. This class provides a logging ability by using the boolean system property groovy.indy.logging. Other than that this class contains the interfacing methods with bytecode for invokedynamic as well as some helper methods and classes.
Nested Class Summary
Modifiers | Name | Description |
---|---|---|
enum | IndyInterface.CallType | Enum for easy differentiation between call types |
Field Summary
Modifiers | Name | Description |
---|---|---|
protected static Logger | LOG | Logger |
protected static boolean | LOG_ENABLED | boolean to indicate if logging for indy is enabled |
static MethodHandles.Lookup | LOOKUP | LOOKUP constant used for for example unreflect calls |
static int | SAFE_NAVIGATION | flags for method and property calls |
protected static SwitchPoint | switchPoint |
Methods Summary
Type Params | Return Type | Name and description |
---|---|---|
public static CallSite |
bootstrap(MethodHandles.Lookup caller, String callType, MethodType type, String name, int flags) bootstrap method for method calls from Groovy compiled code with indy enabled. | |
public static Object |
fromCache(MutableCallSite callSite, Class<?> sender, String methodName, int callID, Boolean safeNavigation, Boolean thisCall, Boolean spreadCall, Object dummyReceiver, Object[] arguments) Get the cached methodhandle. if the related methodhandle is not found in the inline cache, cache and return it. | |
protected static void |
invalidateSwitchPoints() Callback for constant meta class update change | |
protected static MethodHandle |
makeFallBack(MutableCallSite mc, Class<?> sender, String name, int callID, MethodType type, boolean safeNavigation, boolean thisCall, boolean spreadCall) Makes a fallback method for an invalidated method selection | |
public static Object |
selectMethod(MutableCallSite callSite, Class<?> sender, String methodName, int callID, Boolean safeNavigation, Boolean thisCall, Boolean spreadCall, Object dummyReceiver, Object[] arguments) Core method for indy method selection using runtime types. | |
public static CallSite |
staticArrayAccess(MethodHandles.Lookup lookup, String name, MethodType type)
|
Inherited Methods Summary
Methods inherited from class | Name |
---|---|
class Object | wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
Field Detail
protected static final Logger LOG
Logger
protected static final boolean LOG_ENABLED
boolean to indicate if logging for indy is enabled
public static final MethodHandles.Lookup LOOKUP
LOOKUP constant used for for example unreflect calls
public static final int SAFE_NAVIGATION
flags for method and property calls
protected static SwitchPoint switchPoint
Method Detail
public static CallSite bootstrap(MethodHandles.Lookup caller, String callType, MethodType type, String name, int flags)
bootstrap method for method calls from Groovy compiled code with indy enabled. This method gets a flags parameter which uses the following encoding:
- {
- value:
- #SAFE_NAVIGATION} is the flag value for safe navigation see SAFE_NAVIGATION
- {@value #THIS_CALL} is the flag value for a call on this see THIS_CALL
- Parameters:
-
caller
- - the caller -
callType
- - the type of the call -
type
- - the call site type -
name
- - the real method name -
flags
- - call flags
- Returns:
- the produced CallSite
- Since:
- Groovy 2.1.0
public static Object fromCache(MutableCallSite callSite, Class<?> sender, String methodName, int callID, Boolean safeNavigation, Boolean thisCall, Boolean spreadCall, Object dummyReceiver, Object[] arguments)
Get the cached methodhandle. if the related methodhandle is not found in the inline cache, cache and return it.
protected static void invalidateSwitchPoints()
Callback for constant meta class update change
protected static MethodHandle makeFallBack(MutableCallSite mc, Class<?> sender, String name, int callID, MethodType type, boolean safeNavigation, boolean thisCall, boolean spreadCall)
Makes a fallback method for an invalidated method selection
public static Object selectMethod(MutableCallSite callSite, Class<?> sender, String methodName, int callID, Boolean safeNavigation, Boolean thisCall, Boolean spreadCall, Object dummyReceiver, Object[] arguments)
Core method for indy method selection using runtime types.
public static CallSite staticArrayAccess(MethodHandles.Lookup lookup, String name, MethodType type)
- Since:
- 2.5.0
© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/3.0.7/html/gapi/org/codehaus/groovy/vmplugin/v7/IndyInterface.html