Package org.codehaus.groovy.runtime

## Class InvokerHelper

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

-     public class InvokerHelper
      extends java.lang.Object

  A static helper class to make bytecode generation easier and act as a facade over the Invoker

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.Object[]` | `EMPTY_ARGS` |
    `protected static java.lang.Object[]` | `EMPTY_ARGUMENTS` |
    `protected static java.lang.Class[]` | `EMPTY_TYPES` |
    `static java.lang.String` | `MAIN_METHOD_NAME` |
    `static MetaClassRegistry` | `metaRegistry` |

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | `append​(java.lang.Appendable out, java.lang.Object object)` | Appends an object to an Appendable using Groovy's default representation for the object.
    `static java.lang.Object[]` | `asArray​(java.lang.Object arguments)` | Converts the given object into an array; if its an array then just cast otherwise wrap it in an array
    `static java.util.Iterator<java.lang.Object>` | `asIterator​(java.lang.Object o)` |
    `static java.util.List` | `asList​(java.lang.Object value)` |
    `static void` | `assertFailed​(java.lang.Object expression, java.lang.Object message)` |
    `static java.lang.Object[]` | `asUnwrappedArray​(java.lang.Object arguments)` |
    `static java.lang.Object` | `bitwiseNegate​(java.lang.Object value)` |
    `static java.util.List` | `createList​(java.lang.Object[] values)` |
    `static java.util.Map` | `createMap​(java.lang.Object[] values)` |
    `static java.util.List` | `createRange​(java.lang.Object from, java.lang.Object to, boolean inclusive)` |
    `static Script` | `createScript​(java.lang.Class scriptClass, Binding context)` |
    `static Tuple` | `createTuple​(java.lang.Object[] array)` |
    `static java.lang.String` | `escapeBackslashes​(java.lang.String orig)` |
    `static java.util.regex.Matcher` | `findRegex​(java.lang.Object left, java.lang.Object right)` | Find the right hand regex within the left hand string and return a matcher.
    `protected static java.lang.String` | `format​(java.lang.Object arguments, boolean verbose)` |
    `static java.lang.String` | `format​(java.lang.Object arguments, boolean verbose, int maxSize)` |
    `static java.lang.String` | `format​(java.lang.Object arguments, boolean verbose, int maxSize, boolean safe)` |
    `static java.lang.Object` | `getAttribute​(java.lang.Object object, java.lang.String attribute)` |
    `static java.lang.Object` | `getGroovyObjectProperty​(GroovyObject object, java.lang.String property)` |
    `static MetaClass` | `getMetaClass​(java.lang.Class cls)` |
    `static MetaClass` | `getMetaClass​(java.lang.Object object)` |
    `static MetaClassRegistry` | `getMetaRegistry()` |
    `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.Object object, java.lang.String property)` |
    `static java.lang.Object` | `getPropertySafe​(java.lang.Object object, java.lang.String property)` |
    `static java.lang.String` | `inspect​(java.lang.Object self)` |
    `static java.lang.Object` | `invokeClosure​(java.lang.Object closure, java.lang.Object arguments)` |
    `static java.lang.Object` | `invokeConstructorOf​(java.lang.Class type, java.lang.Object arguments)` |
    `static java.lang.Object` | `invokeConstructorOf​(java.lang.String klass, java.lang.Object arguments)` |
    `static java.lang.Object` | `invokeMethod​(java.lang.Object object, java.lang.String methodName, java.lang.Object arguments)` | Invokes the given method on the object.
    `static java.lang.Object` | `invokeMethodSafe​(java.lang.Object object, java.lang.String methodName, java.lang.Object arguments)` |
    `static java.lang.Object` | `invokeNoArgumentsConstructorOf​(java.lang.Class type)` |
    `static java.lang.Object` | `invokeStaticMethod​(java.lang.Class type, java.lang.String method, java.lang.Object arguments)` |
    `static java.lang.Object` | `invokeStaticMethod​(java.lang.String klass, java.lang.String methodName, java.lang.Object arguments)` |
    `static java.lang.Object` | `invokeStaticNoArgumentsMethod​(java.lang.Class type, java.lang.String methodName)` |
    `static java.lang.Object` | `invokeSuperMethod​(java.lang.Object object, java.lang.String methodName, java.lang.Object arguments)` |
    `static boolean` | `matchRegex​(java.lang.Object left, java.lang.Object right)` | Find the right hand regex within the left hand string and return a matcher.
    `static Script` | `newScript​(java.lang.Class<?> scriptClass, Binding context)` |
    `static void` | `removeClass​(java.lang.Class clazz)` |
    `static java.lang.Object` | `runScript​(java.lang.Class scriptClass, java.lang.String[] args)` |
    `static void` | `setAttribute​(java.lang.Object object, java.lang.String attribute, java.lang.Object newValue)` |
    `static void` | `setGroovyObjectProperty​(java.lang.Object newValue, GroovyObject object, java.lang.String property)` | This is so we don't have to reorder the stack when we call this method.
    `static void` | `setProperties​(java.lang.Object object, java.util.Map map)` | Sets the properties on the given object
    `static void` | `setProperty​(java.lang.Object object, java.lang.String property, java.lang.Object newValue)` |
    `static void` | `setProperty2​(java.lang.Object newValue, java.lang.Object object, java.lang.String property)` | This is so we don't have to reorder the stack when we call this method.
    `static void` | `setPropertySafe2​(java.lang.Object newValue, java.lang.Object object, java.lang.String property)` | This is so we don't have to reorder the stack when we call this method.
    `static SpreadMap` | `spreadMap​(java.lang.Object value)` |
    `static java.lang.String` | `toArrayString​(java.lang.Object[] arguments)` | A helper method to return the string representation of an array of objects with brace boundaries "[" and "]".
    `static java.lang.String` | `toArrayString​(java.lang.Object[] arguments, int maxSize, boolean safe)` | A helper method to return the string representation of an array of objects with brace boundaries "[" and "]".
    `static java.lang.String` | `toListString​(java.util.Collection arg)` | A helper method to return the string representation of a list with bracket boundaries "[" and "]".
    `static java.lang.String` | `toListString​(java.util.Collection arg, int maxSize)` | A helper method to return the string representation of a list with bracket boundaries "[" and "]".
    `static java.lang.String` | `toListString​(java.util.Collection arg, int maxSize, boolean safe)` | A helper method to return the string representation of a list with bracket boundaries "[" and "]".
    `static java.lang.String` | `toMapString​(java.util.Map arg)` | A helper method to return the string representation of a map with bracket boundaries "[" and "]".
    `static java.lang.String` | `toMapString​(java.util.Map arg, int maxSize)` | A helper method to return the string representation of a map with bracket boundaries "[" and "]".
    `static java.lang.String` | `toString​(java.lang.Object arguments)` |
    `static java.lang.String` | `toTypeString​(java.lang.Object[] arguments)` | A helper method to format the arguments types as a comma-separated list.
    `static java.lang.String` | `toTypeString​(java.lang.Object[] arguments, int maxSize)` | A helper method to format the arguments types as a comma-separated list.
    `static java.lang.Object` | `unaryMinus​(java.lang.Object value)` |
    `static java.lang.Object` | `unaryPlus​(java.lang.Object value)` |
    `static void` | `write​(java.io.Writer out, java.lang.Object object)` | Writes an object to a Writer using Groovy's default representation for the object.

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

    - #### EMPTY_ARGUMENTS

          protected static final java.lang.Object[] EMPTY_ARGUMENTS

    - #### EMPTY_TYPES

          protected static final java.lang.Class[] EMPTY_TYPES

    - #### metaRegistry

          public static final MetaClassRegistry metaRegistry

    - #### MAIN_METHOD_NAME

          public static final java.lang.String MAIN_METHOD_NAME

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### InvokerHelper

          public InvokerHelper()

  - ### Method Detail

    - #### removeClass

          public static void removeClass​(java.lang.Class clazz)

    - #### invokeMethodSafe

          public static java.lang.Object invokeMethodSafe​(java.lang.Object object,
                                                          java.lang.String methodName,
                                                          java.lang.Object arguments)

    - #### invokeStaticMethod

          public static java.lang.Object invokeStaticMethod​(java.lang.String klass,
                                                            java.lang.String methodName,
                                                            java.lang.Object arguments)
                                                     throws java.lang.ClassNotFoundException

      Throws:
        `java.lang.ClassNotFoundException`

    - #### invokeStaticNoArgumentsMethod

          public static java.lang.Object invokeStaticNoArgumentsMethod​(java.lang.Class type,
                                                                       java.lang.String methodName)

    - #### invokeConstructorOf

          public static java.lang.Object invokeConstructorOf​(java.lang.String klass,
                                                             java.lang.Object arguments)
                                                      throws java.lang.ClassNotFoundException

      Throws:
        `java.lang.ClassNotFoundException`

    - #### invokeNoArgumentsConstructorOf

          public static java.lang.Object invokeNoArgumentsConstructorOf​(java.lang.Class type)

    - #### invokeClosure

          public static java.lang.Object invokeClosure​(java.lang.Object closure,
                                                       java.lang.Object arguments)

    - #### asList

          public static java.util.List asList​(java.lang.Object value)

    - #### toString

          public static java.lang.String toString​(java.lang.Object arguments)

    - #### inspect

          public static java.lang.String inspect​(java.lang.Object self)

    - #### getAttribute

          public static java.lang.Object getAttribute​(java.lang.Object object,
                                                      java.lang.String attribute)

    - #### setAttribute

          public static void setAttribute​(java.lang.Object object,
                                          java.lang.String attribute,
                                          java.lang.Object newValue)

    - #### getProperty

          public static java.lang.Object getProperty​(java.lang.Object object,
                                                     java.lang.String property)

    - #### getPropertySafe

          public static java.lang.Object getPropertySafe​(java.lang.Object object,
                                                         java.lang.String property)

    - #### setProperty

          public static void setProperty​(java.lang.Object object,
                                         java.lang.String property,
                                         java.lang.Object newValue)

    - #### setProperty2

          public static void setProperty2​(java.lang.Object newValue,
                                          java.lang.Object object,
                                          java.lang.String property)

      This is so we don't have to reorder the stack when we call this method. At some point a better name might be in order.

    - #### setGroovyObjectProperty

          public static void setGroovyObjectProperty​(java.lang.Object newValue,
                                                     GroovyObject object,
                                                     java.lang.String property)

      This is so we don't have to reorder the stack when we call this method. At some point a better name might be in order.

    - #### getGroovyObjectProperty

          public static java.lang.Object getGroovyObjectProperty​(GroovyObject object,
                                                                 java.lang.String property)

    - #### setPropertySafe2

          public static void setPropertySafe2​(java.lang.Object newValue,
                                              java.lang.Object object,
                                              java.lang.String property)

      This is so we don't have to reorder the stack when we call this method. At some point a better name might be in order.

    - #### getMethodPointer

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

      Returns the method pointer for the given object name

    - #### unaryMinus

          public static java.lang.Object unaryMinus​(java.lang.Object value)

    - #### unaryPlus

          public static java.lang.Object unaryPlus​(java.lang.Object value)

    - #### findRegex

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

      Find the right hand regex within the left hand string and return a matcher.
      Parameters:
        `left` - string to compare
        `right` - regular expression to compare the string to

    - #### matchRegex

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

      Find the right hand regex within the left hand string and return a matcher.
      Parameters:
        `left` - string to compare
        `right` - regular expression to compare the string to

    - #### createTuple

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

    - #### spreadMap

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

    - #### createList

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

    - #### createMap

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

    - #### assertFailed

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

    - #### runScript

          public static java.lang.Object runScript​(java.lang.Class scriptClass,
                                                   java.lang.String[] args)

    - #### createScript

          public static Script createScript​(java.lang.Class scriptClass,
                                            Binding context)

    - #### newScript

          public static Script newScript​(java.lang.Class<?> scriptClass,
                                         Binding context)
                                  throws java.lang.InstantiationException,
                                         java.lang.IllegalAccessException,
                                         java.lang.reflect.InvocationTargetException

      Throws:
        `java.lang.InstantiationException`
        `java.lang.IllegalAccessException`
        `java.lang.reflect.InvocationTargetException`

    - #### setProperties

          public static void setProperties​(java.lang.Object object,
                                           java.util.Map map)

      Sets the properties on the given object

    - #### write

          public static void write​(java.io.Writer out,
                                   java.lang.Object object)
                            throws java.io.IOException

      Writes an object to a Writer using Groovy's default representation for the object.
      Throws:
        `java.io.IOException`

    - #### append

          public static void append​(java.lang.Appendable out,
                                    java.lang.Object object)
                             throws java.io.IOException

      Appends an object to an Appendable using Groovy's default representation for the object.
      Throws:
        `java.io.IOException`

    - #### asIterator

          public static java.util.Iterator<java.lang.Object> asIterator​(java.lang.Object o)

    - #### format

          protected static java.lang.String format​(java.lang.Object arguments,
                                                   boolean verbose)

    - #### format

          public static java.lang.String format​(java.lang.Object arguments,
                                                boolean verbose,
                                                int maxSize)

    - #### format

          public static java.lang.String format​(java.lang.Object arguments,
                                                boolean verbose,
                                                int maxSize,
                                                boolean safe)

    - #### escapeBackslashes

          public static java.lang.String escapeBackslashes​(java.lang.String orig)

    - #### toTypeString

          public static java.lang.String toTypeString​(java.lang.Object[] arguments)

      A helper method to format the arguments types as a comma-separated list.
      Parameters:
        `arguments` - the type to process
      Returns:
        the string representation of the type

    - #### toTypeString

          public static java.lang.String toTypeString​(java.lang.Object[] arguments,
                                                      int maxSize)

      A helper method to format the arguments types as a comma-separated list.
      Parameters:
        `arguments` - the type to process
        `maxSize` - stop after approximately this many characters and append '...', -1 means don't stop
      Returns:
        the string representation of the type

    - #### toMapString

          public static java.lang.String toMapString​(java.util.Map arg)

      A helper method to return the string representation of a map with bracket boundaries "[" and "]".
      Parameters:
        `arg` - the map to process
      Returns:
        the string representation of the map

    - #### toMapString

          public static java.lang.String toMapString​(java.util.Map arg,
                                                     int maxSize)

      A helper method to return the string representation of a map with bracket boundaries "[" and "]".
      Parameters:
        `arg` - the map to process
        `maxSize` - stop after approximately this many characters and append '...', -1 means don't stop
      Returns:
        the string representation of the map

    - #### toListString

          public static java.lang.String toListString​(java.util.Collection arg)

      A helper method to return the string representation of a list with bracket boundaries "[" and "]".
      Parameters:
        `arg` - the collection to process
      Returns:
        the string representation of the collection

    - #### toListString

          public static java.lang.String toListString​(java.util.Collection arg,
                                                      int maxSize)

      A helper method to return the string representation of a list with bracket boundaries "[" and "]".
      Parameters:
        `arg` - the collection to process
        `maxSize` - stop after approximately this many characters and append '...'
      Returns:
        the string representation of the collection

    - #### toListString

          public static java.lang.String toListString​(java.util.Collection arg,
                                                      int maxSize,
                                                      boolean safe)

      A helper method to return the string representation of a list with bracket boundaries "[" and "]".
      Parameters:
        `arg` - the collection to process
        `maxSize` - stop after approximately this many characters and append '...', -1 means don't stop
        `safe` - whether to use a default object representation for any item in the collection if an exception occurs when generating its toString
      Returns:
        the string representation of the collection

    - #### toArrayString

          public static java.lang.String toArrayString​(java.lang.Object[] arguments)

      A helper method to return the string representation of an array of objects with brace boundaries "[" and "]".
      Parameters:
        `arguments` - the array to process
      Returns:
        the string representation of the array

    - #### toArrayString

          public static java.lang.String toArrayString​(java.lang.Object[] arguments,
                                                       int maxSize,
                                                       boolean safe)

      A helper method to return the string representation of an array of objects with brace boundaries "[" and "]".
      Parameters:
        `arguments` - the array to process
        `maxSize` - stop after approximately this many characters and append '...'
        `safe` - whether to use a default object representation for any item in the array if an exception occurs when generating its toString
      Returns:
        the string representation of the array

    - #### createRange

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

    - #### bitwiseNegate

          public static java.lang.Object bitwiseNegate​(java.lang.Object value)

    - #### getMetaRegistry

          public static MetaClassRegistry getMetaRegistry()

    - #### getMetaClass

          public static MetaClass getMetaClass​(java.lang.Object object)

    - #### getMetaClass

          public static MetaClass getMetaClass​(java.lang.Class cls)

    - #### invokeMethod

          public static java.lang.Object invokeMethod​(java.lang.Object object,
                                                      java.lang.String methodName,
                                                      java.lang.Object arguments)

      Invokes the given method on the object.

    - #### invokeSuperMethod

          public static java.lang.Object invokeSuperMethod​(java.lang.Object object,
                                                           java.lang.String methodName,
                                                           java.lang.Object arguments)

    - #### invokeStaticMethod

          public static java.lang.Object invokeStaticMethod​(java.lang.Class type,
                                                            java.lang.String method,
                                                            java.lang.Object arguments)

    - #### invokeConstructorOf

          public static java.lang.Object invokeConstructorOf​(java.lang.Class type,
                                                             java.lang.Object arguments)

    - #### asArray

          public static java.lang.Object[] asArray​(java.lang.Object arguments)

      Converts the given object into an array; if its an array then just cast otherwise wrap it in an array

    - #### asUnwrappedArray

          public static java.lang.Object[] asUnwrappedArray​(java.lang.Object arguments)