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.
| Modifiers | Name | Description |
|---|---|---|
enum |
IndyInterface.CallType |
Enum for easy differentiation between call types |
| Modifiers | Name | Description |
|---|---|---|
static MethodHandles.Lookup |
LOOKUP |
LOOKUP constant used for for example unreflect calls |
static int |
SAFE_NAVIGATION |
flags for method and property calls |
| 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. |
|
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)
|
LOOKUP constant used for for example unreflect calls
flags for method and property calls
bootstrap method for method calls from Groovy compiled code with indy enabled. This method gets a flags parameter which uses the following encoding:
caller - - the callercallType - - the type of the calltype - - the call site typename - - the real method nameflags - - call flagsGet the cached methodhandle. if the related methodhandle is not found in the inline cache, cache and return it.
Core method for indy method selection using runtime types.