Package org.codehaus.groovy.vmplugin.v7
Class IndyInterface
- java.lang.Object
- 
- org.codehaus.groovy.vmplugin.v7.IndyInterface
 
- 
 public class IndyInterface extends java.lang.ObjectBytecode 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 SummaryNested Classes Modifier and Type Class Description static classIndyInterface.CALL_TYPESEnum for easy differentiation between call types
 - 
Field SummaryFields Modifier and Type Field Description static intGROOVY_OBJECTflags for method and property callsstatic intIMPLICIT_THISflags for method and property callsprotected static java.util.logging.LoggerLOGLoggerprotected static booleanLOG_ENABLEDboolean to indicate if logging for indy is enabledstatic java.lang.invoke.MethodHandles.LookupLOOKUPLOOKUP constant used for for example unreflect callsstatic intSAFE_NAVIGATIONflags for method and property callsstatic intSPREAD_CALLflags for method and property callsprotected static java.lang.invoke.SwitchPointswitchPointstatic intTHIS_CALLflags for method and property callsstatic intUNCACHED_CALLflags for method and property calls
 - 
Constructor SummaryConstructors Constructor Description IndyInterface()
 - 
Method SummaryAll Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static java.lang.invoke.CallSitebootstrap(java.lang.invoke.MethodHandles.Lookup caller, java.lang.String name, java.lang.invoke.MethodType type)Deprecated.since Groovy 2.1.0static java.lang.invoke.CallSitebootstrap(java.lang.invoke.MethodHandles.Lookup caller, java.lang.String callType, java.lang.invoke.MethodType type, java.lang.String name, int flags)bootstrap method for method calls from Groovy compiled code with indy enabled.static java.lang.invoke.CallSitebootstrapCurrent(java.lang.invoke.MethodHandles.Lookup caller, java.lang.String name, java.lang.invoke.MethodType type)Deprecated.since Groovy 2.1.0static java.lang.invoke.CallSitebootstrapCurrentSafe(java.lang.invoke.MethodHandles.Lookup caller, java.lang.String name, java.lang.invoke.MethodType type)Deprecated.since Groovy 2.1.0static java.lang.invoke.CallSitebootstrapSafe(java.lang.invoke.MethodHandles.Lookup caller, java.lang.String name, java.lang.invoke.MethodType type)Deprecated.since Groovy 2.1.0protected static voidinvalidateSwitchPoints()Callback for constant meta class update changeprotected static java.lang.invoke.MethodHandlemakeFallBack(java.lang.invoke.MutableCallSite mc, java.lang.Class<?> sender, java.lang.String name, int callID, java.lang.invoke.MethodType type, boolean safeNavigation, boolean thisCall, boolean spreadCall)Makes a fallback method for an invalidated method selectionstatic java.lang.ObjectselectMethod(java.lang.invoke.MutableCallSite callSite, java.lang.Class sender, java.lang.String methodName, int callID, java.lang.Boolean safeNavigation, java.lang.Boolean thisCall, java.lang.Boolean spreadCall, java.lang.Object dummyReceiver, java.lang.Object[] arguments)Core method for indy method selection using runtime types.static java.lang.invoke.CallSitestaticArrayAccess(java.lang.invoke.MethodHandles.Lookup lookup, java.lang.String name, java.lang.invoke.MethodType type)
 
- 
- 
- 
Field Detail- 
SAFE_NAVIGATIONpublic static final int SAFE_NAVIGATION flags for method and property calls- See Also:
- Constant Field Values
 
 - 
THIS_CALLpublic static final int THIS_CALL flags for method and property calls- See Also:
- Constant Field Values
 
 - 
GROOVY_OBJECTpublic static final int GROOVY_OBJECT flags for method and property calls- See Also:
- Constant Field Values
 
 - 
IMPLICIT_THISpublic static final int IMPLICIT_THIS flags for method and property calls- See Also:
- Constant Field Values
 
 - 
SPREAD_CALLpublic static final int SPREAD_CALL flags for method and property calls- See Also:
- Constant Field Values
 
 - 
UNCACHED_CALLpublic static final int UNCACHED_CALL flags for method and property calls- See Also:
- Constant Field Values
 
 - 
LOGprotected static final java.util.logging.Logger LOG Logger
 - 
LOG_ENABLEDprotected static final boolean LOG_ENABLED boolean to indicate if logging for indy is enabled
 - 
LOOKUPpublic static final java.lang.invoke.MethodHandles.Lookup LOOKUP LOOKUP constant used for for example unreflect calls
 - 
switchPointprotected static java.lang.invoke.SwitchPoint switchPoint 
 
- 
 - 
Method Detail- 
invalidateSwitchPointsprotected static void invalidateSwitchPoints() Callback for constant meta class update change
 - 
bootstrappublic static java.lang.invoke.CallSite bootstrap(java.lang.invoke.MethodHandles.Lookup caller, java.lang.String callType, java.lang.invoke.MethodType type, java.lang.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:- 1 is the flag value for safe navigation see SAFE_NAVIGATION
- 2 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
 
- 1 is the flag value for safe navigation see 
 - 
bootstrapCurrent@Deprecated public static java.lang.invoke.CallSite bootstrapCurrent(java.lang.invoke.MethodHandles.Lookup caller, java.lang.String name, java.lang.invoke.MethodType type)Deprecated.since Groovy 2.1.0bootstrap method for method calls with "this" as receiver
 - 
bootstrapCurrentSafe@Deprecated public static java.lang.invoke.CallSite bootstrapCurrentSafe(java.lang.invoke.MethodHandles.Lookup caller, java.lang.String name, java.lang.invoke.MethodType type)Deprecated.since Groovy 2.1.0bootstrap method for method calls with "this" as receiver safe
 - 
bootstrap@Deprecated public static java.lang.invoke.CallSite bootstrap(java.lang.invoke.MethodHandles.Lookup caller, java.lang.String name, java.lang.invoke.MethodType type)Deprecated.since Groovy 2.1.0bootstrap method for standard method calls
 - 
bootstrapSafe@Deprecated public static java.lang.invoke.CallSite bootstrapSafe(java.lang.invoke.MethodHandles.Lookup caller, java.lang.String name, java.lang.invoke.MethodType type)Deprecated.since Groovy 2.1.0bootstrap method for null safe standard method calls
 - 
makeFallBackprotected static java.lang.invoke.MethodHandle makeFallBack(java.lang.invoke.MutableCallSite mc, java.lang.Class<?> sender, java.lang.String name, int callID, java.lang.invoke.MethodType type, boolean safeNavigation, boolean thisCall, boolean spreadCall)Makes a fallback method for an invalidated method selection
 - 
selectMethodpublic static java.lang.Object selectMethod(java.lang.invoke.MutableCallSite callSite, java.lang.Class sender, java.lang.String methodName, int callID, java.lang.Boolean safeNavigation, java.lang.Boolean thisCall, java.lang.Boolean spreadCall, java.lang.Object dummyReceiver, java.lang.Object[] arguments) throws java.lang.ThrowableCore method for indy method selection using runtime types.- Throws:
- java.lang.Throwable
 
 - 
staticArrayAccesspublic static java.lang.invoke.CallSite staticArrayAccess(java.lang.invoke.MethodHandles.Lookup lookup, java.lang.String name, java.lang.invoke.MethodType type)- Since:
- 2.5.0
 
 
- 
 
-