Package: org.codehaus.groovy.vmplugin.v7

## [Java] Class IndyInterface

- org.codehaus.groovy.vmplugin.v7.IndyInterface

-     @Deprecated
      public class IndyInterface
      extends Object

  Legacy class containing methods called by Groovy 2.5 Indy compiled bytecode. Includes the interfacing methods with bytecode for invokedynamic and some helper methods and classes.

- - ### Nested Class Summary

    Nested classes
    Modifiers | Name | Description
    --- | --- | ---
    `enum` | `IndyInterface.CallType` | Enum for easy differentiation between call types

  - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static MethodHandles.Lookup` | `LOOKUP` | LOOKUP constant used for example in unreflect calls
    `static int` | `SAFE_NAVIGATION` | flags for method and property calls

  - ### Methods Summary

    Methods
    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 (legacy API)
    `` | `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

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Field Detail

    - #### public static final MethodHandles.Lookup LOOKUP

      LOOKUP constant used for example in unreflect calls

    - #### public static final int SAFE_NAVIGATION

      flags for method and property calls

  - ### 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:
        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 (legacy API)

    - #### 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