Package org.codehaus.groovy.vmplugin.v8

# Class IndyGuardsFiltersAndSignatures

java.lang.Object
org.codehaus.groovy.vmplugin.v8.IndyGuardsFiltersAndSignatures

    public class IndyGuardsFiltersAndSignatures
    extends java.lang.Object

This class contains guards, runtime filters and MethodType signatures used by indy.

- ## Field Summary

  Fields
  Modifier and Type | Field | Description
  --- | --- | ---
  `protected static java.lang.invoke.MethodHandle` | `ARRAYLIST_CONSTRUCTOR` |
  `protected static java.lang.invoke.MethodHandle` | `BEAN_CONSTRUCTOR_PROPERTY_SETTER` |
  `protected static java.lang.invoke.MethodHandle` | `BOOLEAN_IDENTITY` |
  `protected static java.lang.invoke.MethodHandle` | `CLASS_FOR_NAME` |
  `protected static java.lang.invoke.MethodHandle` | `DTT_CAST_TO_TYPE` |
  `protected static java.lang.invoke.MethodHandle` | `EQUALS` |
  `protected static java.lang.invoke.MethodHandle` | `GROOVY_CAST_EXCEPTION` |
  `protected static java.lang.invoke.MethodHandle` | `GROOVY_OBJECT_GET_PROPERTY` |
  `protected static java.lang.invoke.MethodHandle` | `GROOVY_OBJECT_INVOKER` |
  `protected static java.lang.invoke.MethodHandle` | `HAS_CATEGORY_IN_CURRENT_THREAD_GUARD` |
  `protected static java.lang.invoke.MethodHandle` | `HASHSET_CONSTRUCTOR` |
  `protected static java.lang.invoke.MethodHandle` | `INTERCEPTABLE_INVOKER` |
  `protected static java.lang.invoke.MethodHandle` | `IS_NULL` |
  `protected static java.lang.invoke.MethodHandle` | `META_CLASS_INVOKE_STATIC_METHOD` |
  `protected static java.lang.invoke.MethodHandle` | `META_METHOD_INVOKER` |
  `protected static java.lang.invoke.MethodHandle` | `META_PROPERTY_GETTER` |
  `protected static java.lang.invoke.MethodHandle` | `MOP_GET` |
  `protected static java.lang.invoke.MethodHandle` | `MOP_INVOKE_CONSTRUCTOR` |
  `protected static java.lang.invoke.MethodHandle` | `MOP_INVOKE_METHOD` |
  `protected static java.lang.invoke.MethodHandle` | `NULL_REF` |
  `protected static java.lang.invoke.MethodHandle` | `SAM_CONVERSION` |
  `protected static java.lang.invoke.MethodHandle` | `SAME_CLASS` |
  `protected static java.lang.invoke.MethodHandle` | `SAME_MC` |
  `protected static java.lang.invoke.MethodHandle` | `SLOW_META_CLASS_FIND` |
  `protected static java.lang.invoke.MethodHandle` | `UNWRAP_EXCEPTION` |
  `protected static java.lang.invoke.MethodHandle` | `UNWRAP_METHOD` |

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `IndyGuardsFiltersAndSignatures()` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `static java.lang.Object` | `invokeGroovyObjectInvoker​(MissingMethodException e, java.lang.Object receiver, java.lang.String name, java.lang.Object[] args)` | `GroovyObject.invokeMethod(String, Object)` path as fallback.
  `static boolean` | `isNull​(java.lang.Object o)` | Guard to check if the argument is null.
  `static boolean` | `isSameMetaClass​(MetaClass mc, java.lang.Object receiver)` | called by handle
  `static boolean` | `sameClass​(java.lang.Class<?> c, java.lang.Object o)` | Guard to check if the provided Object has the same class as the provided Class.
  `static java.lang.Object` | `setBeanProperties​(MetaClass mc, java.lang.Object bean, java.util.Map properties)` | This method is called by the handle to realize the bean constructor with property map.
  `static java.lang.Object` | `unwrap​(GroovyRuntimeException gre)` | Unwraps a `GroovyRuntimeException`.
  `static java.lang.Object` | `unwrap​(java.lang.Object o)` | Unwraps a `Wrapper`.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### SAME_CLASS

    protected static final java.lang.invoke.MethodHandle SAME_CLASS

  - ### SAME_MC

    protected static final java.lang.invoke.MethodHandle SAME_MC

  - ### IS_NULL

    protected static final java.lang.invoke.MethodHandle IS_NULL

  - ### UNWRAP_METHOD

    protected static final java.lang.invoke.MethodHandle UNWRAP_METHOD

  - ### UNWRAP_EXCEPTION

    protected static final java.lang.invoke.MethodHandle UNWRAP_EXCEPTION

  - ### HAS_CATEGORY_IN_CURRENT_THREAD_GUARD

    protected static final java.lang.invoke.MethodHandle HAS_CATEGORY_IN_CURRENT_THREAD_GUARD

  - ### META_METHOD_INVOKER

    protected static final java.lang.invoke.MethodHandle META_METHOD_INVOKER

  - ### GROOVY_OBJECT_INVOKER

    protected static final java.lang.invoke.MethodHandle GROOVY_OBJECT_INVOKER

  - ### GROOVY_OBJECT_GET_PROPERTY

    protected static final java.lang.invoke.MethodHandle GROOVY_OBJECT_GET_PROPERTY

  - ### META_CLASS_INVOKE_STATIC_METHOD

    protected static final java.lang.invoke.MethodHandle META_CLASS_INVOKE_STATIC_METHOD

  - ### BEAN_CONSTRUCTOR_PROPERTY_SETTER

    protected static final java.lang.invoke.MethodHandle BEAN_CONSTRUCTOR_PROPERTY_SETTER

  - ### META_PROPERTY_GETTER

    protected static final java.lang.invoke.MethodHandle META_PROPERTY_GETTER

  - ### SLOW_META_CLASS_FIND

    protected static final java.lang.invoke.MethodHandle SLOW_META_CLASS_FIND

  - ### MOP_GET

    protected static final java.lang.invoke.MethodHandle MOP_GET

  - ### MOP_INVOKE_CONSTRUCTOR

    protected static final java.lang.invoke.MethodHandle MOP_INVOKE_CONSTRUCTOR

  - ### MOP_INVOKE_METHOD

    protected static final java.lang.invoke.MethodHandle MOP_INVOKE_METHOD

  - ### INTERCEPTABLE_INVOKER

    protected static final java.lang.invoke.MethodHandle INTERCEPTABLE_INVOKER

  - ### BOOLEAN_IDENTITY

    protected static final java.lang.invoke.MethodHandle BOOLEAN_IDENTITY

  - ### CLASS_FOR_NAME

    protected static final java.lang.invoke.MethodHandle CLASS_FOR_NAME

  - ### DTT_CAST_TO_TYPE

    protected static final java.lang.invoke.MethodHandle DTT_CAST_TO_TYPE

  - ### SAM_CONVERSION

    protected static final java.lang.invoke.MethodHandle SAM_CONVERSION

  - ### HASHSET_CONSTRUCTOR

    protected static final java.lang.invoke.MethodHandle HASHSET_CONSTRUCTOR

  - ### ARRAYLIST_CONSTRUCTOR

    protected static final java.lang.invoke.MethodHandle ARRAYLIST_CONSTRUCTOR

  - ### GROOVY_CAST_EXCEPTION

    protected static final java.lang.invoke.MethodHandle GROOVY_CAST_EXCEPTION

  - ### EQUALS

    protected static final java.lang.invoke.MethodHandle EQUALS

  - ### NULL_REF

    protected static final java.lang.invoke.MethodHandle NULL_REF

- ## Constructor Details

  - ### IndyGuardsFiltersAndSignatures

    public IndyGuardsFiltersAndSignatures()

- ## Method Details

  - ### setBeanProperties

    public static java.lang.Object setBeanProperties​(MetaClass mc, java.lang.Object bean, java.util.Map properties)
    This method is called by the handle to realize the bean constructor with property map.

  - ### invokeGroovyObjectInvoker

    public static java.lang.Object invokeGroovyObjectInvoker​(MissingMethodException e, java.lang.Object receiver, java.lang.String name, java.lang.Object[] args)
    `GroovyObject.invokeMethod(String, Object)` path as fallback. This method is called by the handle as exception handler in case the selected method causes a MissingMethodExecutionFailed, where we will just give through the exception, and a normal MissingMethodException where we call `GroovyObject.invokeMethod(String, Object)` if receiver class, the type transported by the exception and the name for the method stored in the exception and our current method name are equal. Should those conditions not apply we just rethrow the exception.

  - ### unwrap

    public static java.lang.Object unwrap​(GroovyRuntimeException gre) throws java.lang.Throwable
    Unwraps a `GroovyRuntimeException`. This method is called by the handle to unwrap internal exceptions of the runtime.
    Throws:
      `java.lang.Throwable`

  - ### isSameMetaClass

    public static boolean isSameMetaClass​(MetaClass mc, java.lang.Object receiver)
    called by handle

  - ### unwrap

    public static java.lang.Object unwrap​(java.lang.Object o)
    Unwraps a `Wrapper`. This method is called by the handle to unwrap a Wrapper, which we use to force method selection.

  - ### isNull

    public static boolean isNull​(java.lang.Object o)
    Guard to check if the argument is null. This method is called by the handle to check if the provided argument is null.

  - ### sameClass

    public static boolean sameClass​(java.lang.Class<?> c, java.lang.Object o)
    Guard to check if the provided Object has the same class as the provided Class. This method will return false if the Object is null.