org.codehaus.groovy.runtime

## Class ScriptBytecodeAdapter

- java.lang.Object
- - org.codehaus.groovy.runtime.ScriptBytecodeAdapter

-     public class ScriptBytecodeAdapter
      extends java.lang.Object

  A static helper class to interface bytecode and runtime
  Author:
    Jochen Theodorou

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.Object[]` | `EMPTY_ARGS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ScriptBytecodeAdapter()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `assertFailed(java.lang.Object expression, java.lang.Object message)`
    `static java.lang.Object` | `asType(java.lang.Object object, java.lang.Class type)` Provides a hook for type coercion of the given object to the required type
    `static java.lang.Object` | `bitwiseNegate(java.lang.Object value)`
    `static java.lang.Object` | `castToType(java.lang.Object object, java.lang.Class type)` Provides a hook for type casting of the given object to the required type
    `static boolean` | `compareEqual(java.lang.Object left, java.lang.Object right)`
    `static boolean` | `compareGreaterThan(java.lang.Object left, java.lang.Object right)`
    `static boolean` | `compareGreaterThanEqual(java.lang.Object left, java.lang.Object right)`
    `static boolean` | `compareIdentical(java.lang.Object left, java.lang.Object right)`
    `static boolean` | `compareLessThan(java.lang.Object left, java.lang.Object right)`
    `static boolean` | `compareLessThanEqual(java.lang.Object left, java.lang.Object right)`
    `static boolean` | `compareNotEqual(java.lang.Object left, java.lang.Object right)`
    `static boolean` | `compareNotIdentical(java.lang.Object left, java.lang.Object right)`
    `static java.lang.Integer` | `compareTo(java.lang.Object left, java.lang.Object right)`
    `static Wrapper` | `createGroovyObjectWrapper(GroovyObject val, java.lang.Class clazz)`
    `static java.util.List` | `createList(java.lang.Object[] values)`
    `static java.util.Map` | `createMap(java.lang.Object[] values)`
    `static Wrapper` | `createPojoWrapper(java.lang.Object val, java.lang.Class clazz)`
    `static java.util.List` | `createRange(java.lang.Object from, java.lang.Object to, boolean inclusive)`
    `static Tuple` | `createTuple(java.lang.Object[] array)`
    `static java.lang.Object[]` | `despreadList(java.lang.Object[] args, java.lang.Object[] spreads, int[] positions)`
    `static java.util.regex.Matcher` | `findRegex(java.lang.Object left, java.lang.Object right)`
    `static java.lang.Object` | `getField(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getFieldOnSuper(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getFieldOnSuperSafe(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getFieldOnSuperSpreadSafe(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getFieldSafe(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getFieldSpreadSafe(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getGroovyObjectField(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getGroovyObjectFieldSafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getGroovyObjectFieldSpreadSafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getGroovyObjectProperty(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getGroovyObjectPropertySafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getGroovyObjectPropertySpreadSafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static Closure` | `getMethodPointer(java.lang.Object object, java.lang.String methodName)` Returns the method pointer for the given object name
    `static java.lang.Object` | `getProperty(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getPropertyOnSuper(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getPropertyOnSuperSafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getPropertyOnSuperSpreadSafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getPropertySafe(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `getPropertySpreadSafe(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static MetaClass` | `initMetaClass(java.lang.Object object)`
    `static java.lang.Object` | `invokeClosure(java.lang.Object closure, java.lang.Object[] arguments)`
    `static java.lang.Object` | `invokeMethod0(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `invokeMethod0Safe(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `invokeMethod0SpreadSafe(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `invokeMethodN(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodNSafe(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodNSpreadSafe(java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodOnCurrent0(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static java.lang.Object` | `invokeMethodOnCurrent0Safe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodOnCurrent0SpreadSafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodOnCurrentN(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodOnCurrentNSafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodOnCurrentNSpreadSafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodOnSuper0(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static java.lang.Object` | `invokeMethodOnSuper0Safe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodOnSuper0SpreadSafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodOnSuperN(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodOnSuperNSafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeMethodOnSuperNSpreadSafe(java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static java.lang.Object` | `invokeNew0(java.lang.Class senderClass, java.lang.Class receiver)`
    `static java.lang.Object` | `invokeNewN(java.lang.Class senderClass, java.lang.Class receiver, java.lang.Object arguments)`
    `static java.lang.Object` | `invokeStaticMethod0(java.lang.Class senderClass, java.lang.Class receiver, java.lang.String messageName)`
    `static java.lang.Object` | `invokeStaticMethodN(java.lang.Class senderClass, java.lang.Class receiver, java.lang.String messageName, java.lang.Object[] messageArguments)`
    `static boolean` | `isCase(java.lang.Object switchValue, java.lang.Object caseExpression)`
    `static boolean` | `matchRegex(java.lang.Object left, java.lang.Object right)`
    `static java.util.regex.Pattern` | `regexPattern(java.lang.Object regex)`
    `static int` | `selectConstructorAndTransformArguments(java.lang.Object[] arguments, int numberOfConstructors, java.lang.Class which)`
    `static void` | `setField(java.lang.Object messageArgument, java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static void` | `setFieldOnSuper(java.lang.Object messageArgument, java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static void` | `setFieldOnSuperSafe(java.lang.Object messageArgument, java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static void` | `setFieldOnSuperSpreadSafe(java.lang.Object messageArgument, java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static void` | `setFieldSafe(java.lang.Object messageArgument, java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static void` | `setFieldSpreadSafe(java.lang.Object messageArgument, java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static void` | `setGroovyObjectField(java.lang.Object messageArgument, java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static void` | `setGroovyObjectFieldSafe(java.lang.Object messageArgument, java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static void` | `setGroovyObjectFieldSpreadSafe(java.lang.Object messageArgument, java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static void` | `setGroovyObjectProperty(java.lang.Object messageArgument, java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static void` | `setGroovyObjectPropertySafe(java.lang.Object messageArgument, java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static void` | `setGroovyObjectPropertySpreadSafe(java.lang.Object messageArgument, java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static void` | `setProperty(java.lang.Object messageArgument, java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static void` | `setPropertyOnSuper(java.lang.Object messageArgument, java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static void` | `setPropertyOnSuperSafe(java.lang.Object messageArgument, java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static void` | `setPropertyOnSuperSpreadSafe(java.lang.Object messageArgument, java.lang.Class senderClass, GroovyObject receiver, java.lang.String messageName)`
    `static void` | `setPropertySafe(java.lang.Object messageArgument, java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static void` | `setPropertySpreadSafe(java.lang.Object messageArgument, java.lang.Class senderClass, java.lang.Object receiver, java.lang.String messageName)`
    `static java.lang.Object` | `spreadMap(java.lang.Object value)`
    `static java.lang.Object` | `unaryMinus(java.lang.Object value)`
    `static java.lang.Object` | `unaryPlus(java.lang.Object value)`
    `static java.lang.Throwable` | `unwrap(GroovyRuntimeException gre)`

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

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

- - ### Field Detail

    - #### EMPTY_ARGS

          public static final java.lang.Object[] EMPTY_ARGS

  - ### Constructor Detail

    - #### ScriptBytecodeAdapter

          public ScriptBytecodeAdapter()

  - ### Method Detail

    - #### unwrap

          public static java.lang.Throwable unwrap(GroovyRuntimeException gre)

    - #### invokeMethodOnCurrentN

          public static java.lang.Object invokeMethodOnCurrentN(java.lang.Class senderClass,
                                                                GroovyObject receiver,
                                                                java.lang.String messageName,
                                                                java.lang.Object[] messageArguments)
                                                         throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodOnCurrentNSafe

          public static java.lang.Object invokeMethodOnCurrentNSafe(java.lang.Class senderClass,
                                                                    GroovyObject receiver,
                                                                    java.lang.String messageName,
                                                                    java.lang.Object[] messageArguments)
                                                             throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodOnCurrentNSpreadSafe

          public static java.lang.Object invokeMethodOnCurrentNSpreadSafe(java.lang.Class senderClass,
                                                                          GroovyObject receiver,
                                                                          java.lang.String messageName,
                                                                          java.lang.Object[] messageArguments)
                                                                   throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodOnCurrent0

          public static java.lang.Object invokeMethodOnCurrent0(java.lang.Class senderClass,
                                                                GroovyObject receiver,
                                                                java.lang.String messageName)
                                                         throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodOnCurrent0Safe

          public static java.lang.Object invokeMethodOnCurrent0Safe(java.lang.Class senderClass,
                                                                    GroovyObject receiver,
                                                                    java.lang.String messageName,
                                                                    java.lang.Object[] messageArguments)
                                                             throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodOnCurrent0SpreadSafe

          public static java.lang.Object invokeMethodOnCurrent0SpreadSafe(java.lang.Class senderClass,
                                                                          GroovyObject receiver,
                                                                          java.lang.String messageName,
                                                                          java.lang.Object[] messageArguments)
                                                                   throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodOnSuperN

          public static java.lang.Object invokeMethodOnSuperN(java.lang.Class senderClass,
                                                              GroovyObject receiver,
                                                              java.lang.String messageName,
                                                              java.lang.Object[] messageArguments)
                                                       throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodOnSuperNSafe

          public static java.lang.Object invokeMethodOnSuperNSafe(java.lang.Class senderClass,
                                                                  GroovyObject receiver,
                                                                  java.lang.String messageName,
                                                                  java.lang.Object[] messageArguments)
                                                           throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodOnSuperNSpreadSafe

          public static java.lang.Object invokeMethodOnSuperNSpreadSafe(java.lang.Class senderClass,
                                                                        GroovyObject receiver,
                                                                        java.lang.String messageName,
                                                                        java.lang.Object[] messageArguments)
                                                                 throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodOnSuper0

          public static java.lang.Object invokeMethodOnSuper0(java.lang.Class senderClass,
                                                              GroovyObject receiver,
                                                              java.lang.String messageName)
                                                       throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodOnSuper0Safe

          public static java.lang.Object invokeMethodOnSuper0Safe(java.lang.Class senderClass,
                                                                  GroovyObject receiver,
                                                                  java.lang.String messageName,
                                                                  java.lang.Object[] messageArguments)
                                                           throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodOnSuper0SpreadSafe

          public static java.lang.Object invokeMethodOnSuper0SpreadSafe(java.lang.Class senderClass,
                                                                        GroovyObject receiver,
                                                                        java.lang.String messageName,
                                                                        java.lang.Object[] messageArguments)
                                                                 throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodN

          public static java.lang.Object invokeMethodN(java.lang.Class senderClass,
                                                       java.lang.Object receiver,
                                                       java.lang.String messageName,
                                                       java.lang.Object[] messageArguments)
                                                throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodNSafe

          public static java.lang.Object invokeMethodNSafe(java.lang.Class senderClass,
                                                           java.lang.Object receiver,
                                                           java.lang.String messageName,
                                                           java.lang.Object[] messageArguments)
                                                    throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethodNSpreadSafe

          public static java.lang.Object invokeMethodNSpreadSafe(java.lang.Class senderClass,
                                                                 java.lang.Object receiver,
                                                                 java.lang.String messageName,
                                                                 java.lang.Object[] messageArguments)
                                                          throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethod0

          public static java.lang.Object invokeMethod0(java.lang.Class senderClass,
                                                       java.lang.Object receiver,
                                                       java.lang.String messageName)
                                                throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethod0Safe

          public static java.lang.Object invokeMethod0Safe(java.lang.Class senderClass,
                                                           java.lang.Object receiver,
                                                           java.lang.String messageName)
                                                    throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeMethod0SpreadSafe

          public static java.lang.Object invokeMethod0SpreadSafe(java.lang.Class senderClass,
                                                                 java.lang.Object receiver,
                                                                 java.lang.String messageName)
                                                          throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeStaticMethodN

          public static java.lang.Object invokeStaticMethodN(java.lang.Class senderClass,
                                                             java.lang.Class receiver,
                                                             java.lang.String messageName,
                                                             java.lang.Object[] messageArguments)
                                                      throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeStaticMethod0

          public static java.lang.Object invokeStaticMethod0(java.lang.Class senderClass,
                                                             java.lang.Class receiver,
                                                             java.lang.String messageName)
                                                      throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeNewN

          public static java.lang.Object invokeNewN(java.lang.Class senderClass,
                                                    java.lang.Class receiver,
                                                    java.lang.Object arguments)
                                             throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### invokeNew0

          public static java.lang.Object invokeNew0(java.lang.Class senderClass,
                                                    java.lang.Class receiver)
                                             throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### selectConstructorAndTransformArguments

          public static int selectConstructorAndTransformArguments(java.lang.Object[] arguments,
                                                                   int numberOfConstructors,
                                                                   java.lang.Class which)
                                                            throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getFieldOnSuper

          public static java.lang.Object getFieldOnSuper(java.lang.Class senderClass,
                                                         java.lang.Object receiver,
                                                         java.lang.String messageName)
                                                  throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getFieldOnSuperSafe

          public static java.lang.Object getFieldOnSuperSafe(java.lang.Class senderClass,
                                                             java.lang.Object receiver,
                                                             java.lang.String messageName)
                                                      throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getFieldOnSuperSpreadSafe

          public static java.lang.Object getFieldOnSuperSpreadSafe(java.lang.Class senderClass,
                                                                   java.lang.Object receiver,
                                                                   java.lang.String messageName)
                                                            throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setFieldOnSuper

          public static void setFieldOnSuper(java.lang.Object messageArgument,
                                             java.lang.Class senderClass,
                                             java.lang.Object receiver,
                                             java.lang.String messageName)
                                      throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setFieldOnSuperSafe

          public static void setFieldOnSuperSafe(java.lang.Object messageArgument,
                                                 java.lang.Class senderClass,
                                                 java.lang.Object receiver,
                                                 java.lang.String messageName)
                                          throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setFieldOnSuperSpreadSafe

          public static void setFieldOnSuperSpreadSafe(java.lang.Object messageArgument,
                                                       java.lang.Class senderClass,
                                                       java.lang.Object receiver,
                                                       java.lang.String messageName)
                                                throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getField

          public static java.lang.Object getField(java.lang.Class senderClass,
                                                  java.lang.Object receiver,
                                                  java.lang.String messageName)
                                           throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getFieldSafe

          public static java.lang.Object getFieldSafe(java.lang.Class senderClass,
                                                      java.lang.Object receiver,
                                                      java.lang.String messageName)
                                               throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getFieldSpreadSafe

          public static java.lang.Object getFieldSpreadSafe(java.lang.Class senderClass,
                                                            java.lang.Object receiver,
                                                            java.lang.String messageName)
                                                     throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setField

          public static void setField(java.lang.Object messageArgument,
                                      java.lang.Class senderClass,
                                      java.lang.Object receiver,
                                      java.lang.String messageName)
                               throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setFieldSafe

          public static void setFieldSafe(java.lang.Object messageArgument,
                                          java.lang.Class senderClass,
                                          java.lang.Object receiver,
                                          java.lang.String messageName)
                                   throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setFieldSpreadSafe

          public static void setFieldSpreadSafe(java.lang.Object messageArgument,
                                                java.lang.Class senderClass,
                                                java.lang.Object receiver,
                                                java.lang.String messageName)
                                         throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getGroovyObjectField

          public static java.lang.Object getGroovyObjectField(java.lang.Class senderClass,
                                                              GroovyObject receiver,
                                                              java.lang.String messageName)
                                                       throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getGroovyObjectFieldSafe

          public static java.lang.Object getGroovyObjectFieldSafe(java.lang.Class senderClass,
                                                                  GroovyObject receiver,
                                                                  java.lang.String messageName)
                                                           throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getGroovyObjectFieldSpreadSafe

          public static java.lang.Object getGroovyObjectFieldSpreadSafe(java.lang.Class senderClass,
                                                                        GroovyObject receiver,
                                                                        java.lang.String messageName)
                                                                 throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setGroovyObjectField

          public static void setGroovyObjectField(java.lang.Object messageArgument,
                                                  java.lang.Class senderClass,
                                                  GroovyObject receiver,
                                                  java.lang.String messageName)
                                           throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setGroovyObjectFieldSafe

          public static void setGroovyObjectFieldSafe(java.lang.Object messageArgument,
                                                      java.lang.Class senderClass,
                                                      GroovyObject receiver,
                                                      java.lang.String messageName)
                                               throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setGroovyObjectFieldSpreadSafe

          public static void setGroovyObjectFieldSpreadSafe(java.lang.Object messageArgument,
                                                            java.lang.Class senderClass,
                                                            GroovyObject receiver,
                                                            java.lang.String messageName)
                                                     throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getPropertyOnSuper

          public static java.lang.Object getPropertyOnSuper(java.lang.Class senderClass,
                                                            GroovyObject receiver,
                                                            java.lang.String messageName)
                                                     throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getPropertyOnSuperSafe

          public static java.lang.Object getPropertyOnSuperSafe(java.lang.Class senderClass,
                                                                GroovyObject receiver,
                                                                java.lang.String messageName)
                                                         throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getPropertyOnSuperSpreadSafe

          public static java.lang.Object getPropertyOnSuperSpreadSafe(java.lang.Class senderClass,
                                                                      GroovyObject receiver,
                                                                      java.lang.String messageName)
                                                               throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setPropertyOnSuper

          public static void setPropertyOnSuper(java.lang.Object messageArgument,
                                                java.lang.Class senderClass,
                                                GroovyObject receiver,
                                                java.lang.String messageName)
                                         throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setPropertyOnSuperSafe

          public static void setPropertyOnSuperSafe(java.lang.Object messageArgument,
                                                    java.lang.Class senderClass,
                                                    GroovyObject receiver,
                                                    java.lang.String messageName)
                                             throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setPropertyOnSuperSpreadSafe

          public static void setPropertyOnSuperSpreadSafe(java.lang.Object messageArgument,
                                                          java.lang.Class senderClass,
                                                          GroovyObject receiver,
                                                          java.lang.String messageName)
                                                   throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getProperty

          public static java.lang.Object getProperty(java.lang.Class senderClass,
                                                     java.lang.Object receiver,
                                                     java.lang.String messageName)
                                              throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getPropertySafe

          public static java.lang.Object getPropertySafe(java.lang.Class senderClass,
                                                         java.lang.Object receiver,
                                                         java.lang.String messageName)
                                                  throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getPropertySpreadSafe

          public static java.lang.Object getPropertySpreadSafe(java.lang.Class senderClass,
                                                               java.lang.Object receiver,
                                                               java.lang.String messageName)
                                                        throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setProperty

          public static void setProperty(java.lang.Object messageArgument,
                                         java.lang.Class senderClass,
                                         java.lang.Object receiver,
                                         java.lang.String messageName)
                                  throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setPropertySafe

          public static void setPropertySafe(java.lang.Object messageArgument,
                                             java.lang.Class senderClass,
                                             java.lang.Object receiver,
                                             java.lang.String messageName)
                                      throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setPropertySpreadSafe

          public static void setPropertySpreadSafe(java.lang.Object messageArgument,
                                                   java.lang.Class senderClass,
                                                   java.lang.Object receiver,
                                                   java.lang.String messageName)
                                            throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getGroovyObjectProperty

          public static java.lang.Object getGroovyObjectProperty(java.lang.Class senderClass,
                                                                 GroovyObject receiver,
                                                                 java.lang.String messageName)
                                                          throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getGroovyObjectPropertySafe

          public static java.lang.Object getGroovyObjectPropertySafe(java.lang.Class senderClass,
                                                                     GroovyObject receiver,
                                                                     java.lang.String messageName)
                                                              throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getGroovyObjectPropertySpreadSafe

          public static java.lang.Object getGroovyObjectPropertySpreadSafe(java.lang.Class senderClass,
                                                                           GroovyObject receiver,
                                                                           java.lang.String messageName)
                                                                    throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setGroovyObjectProperty

          public static void setGroovyObjectProperty(java.lang.Object messageArgument,
                                                     java.lang.Class senderClass,
                                                     GroovyObject receiver,
                                                     java.lang.String messageName)
                                              throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setGroovyObjectPropertySafe

          public static void setGroovyObjectPropertySafe(java.lang.Object messageArgument,
                                                         java.lang.Class senderClass,
                                                         GroovyObject receiver,
                                                         java.lang.String messageName)
                                                  throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### setGroovyObjectPropertySpreadSafe

          public static void setGroovyObjectPropertySpreadSafe(java.lang.Object messageArgument,
                                                               java.lang.Class senderClass,
                                                               GroovyObject receiver,
                                                               java.lang.String messageName)
                                                        throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### getMethodPointer

          public static Closure getMethodPointer(java.lang.Object object,
                                                 java.lang.String methodName)

      Returns the method pointer for the given object name
      Parameters:
        `object` - the object containing the method
        `methodName` - the name of the method of interest
      Returns:
        the resulting Closure

    - #### invokeClosure

          public static java.lang.Object invokeClosure(java.lang.Object closure,
                                                       java.lang.Object[] arguments)
                                                throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### asType

          public static java.lang.Object asType(java.lang.Object object,
                                                java.lang.Class type)
                                         throws java.lang.Throwable

      Provides a hook for type coercion of the given object to the required type
      Parameters:
        `type` - of object to convert the given object to
        `object` - the object to be converted
      Returns:
        the original object or a new converted value
      Throws:
        `java.lang.Throwable` - if the coercion fails

    - #### castToType

          public static java.lang.Object castToType(java.lang.Object object,
                                                    java.lang.Class type)
                                             throws java.lang.Throwable

      Provides a hook for type casting of the given object to the required type
      Parameters:
        `type` - of object to convert the given object to
        `object` - the object to be converted
      Returns:
        the original object or a new converted value
      Throws:
        `java.lang.Throwable` - if the type casting fails

    - #### createTuple

          public static Tuple createTuple(java.lang.Object[] array)

    - #### createList

          public static java.util.List createList(java.lang.Object[] values)

    - #### createPojoWrapper

          public static Wrapper createPojoWrapper(java.lang.Object val,
                                                  java.lang.Class clazz)

    - #### createGroovyObjectWrapper

          public static Wrapper createGroovyObjectWrapper(GroovyObject val,
                                                          java.lang.Class clazz)

    - #### createMap

          public static java.util.Map createMap(java.lang.Object[] values)

    - #### createRange

          public static java.util.List createRange(java.lang.Object from,
                                                   java.lang.Object to,
                                                   boolean inclusive)
                                            throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### assertFailed

          public static void assertFailed(java.lang.Object expression,
                                          java.lang.Object message)

    - #### isCase

          public static boolean isCase(java.lang.Object switchValue,
                                       java.lang.Object caseExpression)
                                throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### compareIdentical

          public static boolean compareIdentical(java.lang.Object left,
                                                 java.lang.Object right)

    - #### compareNotIdentical

          public static boolean compareNotIdentical(java.lang.Object left,
                                                    java.lang.Object right)

    - #### compareEqual

          public static boolean compareEqual(java.lang.Object left,
                                             java.lang.Object right)

    - #### compareNotEqual

          public static boolean compareNotEqual(java.lang.Object left,
                                                java.lang.Object right)

    - #### compareTo

          public static java.lang.Integer compareTo(java.lang.Object left,
                                                    java.lang.Object right)

    - #### compareLessThan

          public static boolean compareLessThan(java.lang.Object left,
                                                java.lang.Object right)

    - #### compareLessThanEqual

          public static boolean compareLessThanEqual(java.lang.Object left,
                                                     java.lang.Object right)

    - #### compareGreaterThan

          public static boolean compareGreaterThan(java.lang.Object left,
                                                   java.lang.Object right)

    - #### compareGreaterThanEqual

          public static boolean compareGreaterThanEqual(java.lang.Object left,
                                                        java.lang.Object right)

    - #### regexPattern

          public static java.util.regex.Pattern regexPattern(java.lang.Object regex)

    - #### findRegex

          public static java.util.regex.Matcher findRegex(java.lang.Object left,
                                                          java.lang.Object right)
                                                   throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### matchRegex

          public static boolean matchRegex(java.lang.Object left,
                                           java.lang.Object right)

    - #### despreadList

          public static java.lang.Object[] despreadList(java.lang.Object[] args,
                                                        java.lang.Object[] spreads,
                                                        int[] positions)

    - #### spreadMap

          public static java.lang.Object spreadMap(java.lang.Object value)

    - #### unaryMinus

          public static java.lang.Object unaryMinus(java.lang.Object value)
                                             throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### unaryPlus

          public static java.lang.Object unaryPlus(java.lang.Object value)
                                            throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### bitwiseNegate

          public static java.lang.Object bitwiseNegate(java.lang.Object value)
                                                throws java.lang.Throwable

      Throws:
        `java.lang.Throwable`

    - #### initMetaClass

          public static MetaClass initMetaClass(java.lang.Object object)