Package org.codehaus.groovy.runtime

## Class InvokerHelper

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

-     public class InvokerHelper
      extends 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 Object[]` | `EMPTY_ARGS` |
    `protected static Object[]` | `EMPTY_ARGUMENTS` |
    `protected static Class[]` | `EMPTY_TYPES` |
    `static 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​(Appendable out, Object object)` | Appends an object to an Appendable using Groovy's default representation for the object.
    `static Object[]` | `asArray​(Object arguments)` | Converts the given object into an array; if its an array then just cast otherwise wrap it in an array
    `static Iterator<Object>` | `asIterator​(Object o)` |
    `static List` | `asList​(Object value)` |
    `static void` | `assertFailed​(Object expression, Object message)` |
    `static Object[]` | `asUnwrappedArray​(Object arguments)` |
    `static Object` | `bitwiseNegate​(Object value)` |
    `static List` | `createList​(Object[] values)` |
    `static Map` | `createMap​(Object[] values)` |
    `static List` | `createRange​(Object from, Object to, boolean inclusive)` |
    `static Script` | `createScript​(Class scriptClass, Binding context)` |
    `static Tuple` | `createTuple​(Object[] array)` |
    `static String` | `escapeBackslashes​(String orig)` |
    `static Matcher` | `findRegex​(Object left, Object right)` | Find the right hand regex within the left hand string and return a matcher.
    `protected static String` | `format​(Object arguments, boolean verbose)` |
    `static String` | `format​(Object arguments, boolean verbose, int maxSize)` |
    `static String` | `format​(Object arguments, boolean verbose, int maxSize, boolean safe)` |
    `static Object` | `getAttribute​(Object object, String attribute)` |
    `static Object` | `getGroovyObjectProperty​(GroovyObject object, String property)` |
    `static MetaClass` | `getMetaClass​(Class cls)` |
    `static MetaClass` | `getMetaClass​(Object object)` |
    `static MetaClassRegistry` | `getMetaRegistry()` |
    `static Closure` | `getMethodPointer​(Object object, String methodName)` | Returns the method pointer for the given object name
    `static Object` | `getProperty​(Object object, String property)` |
    `static Object` | `getPropertySafe​(Object object, String property)` |
    `static int` | `initialCapacity​(int initialEntryCnt)` | According to the initial entry count, calculate the initial capacity of hash map, which is power of 2 (SEE https://stackoverflow.com/questions/8352378/why-does-hashmap-require-that-the-initial-capacity-be-a-power-of-two)
    `static String` | `inspect​(Object self)` |
    `static Object` | `invokeClosure​(Object closure, Object arguments)` |
    `static Object` | `invokeConstructorOf​(Class type, Object arguments)` |
    `static Object` | `invokeConstructorOf​(String klass, Object arguments)` |
    `static Object` | `invokeMethod​(Object object, String methodName, Object arguments)` | Invokes the given method on the object.
    `static Object` | `invokeMethodSafe​(Object object, String methodName, Object arguments)` |
    `static Object` | `invokeNoArgumentsConstructorOf​(Class type)` |
    `static Object` | `invokeStaticMethod​(Class type, String method, Object arguments)` |
    `static Object` | `invokeStaticMethod​(String klass, String methodName, Object arguments)` |
    `static Object` | `invokeStaticNoArgumentsMethod​(Class type, String methodName)` |
    `static Object` | `invokeSuperMethod​(Object object, String methodName, Object arguments)` |
    `static boolean` | `matchRegex​(Object left, Object right)` | Find the right hand regex within the left hand string and return a matcher.
    `static Script` | `newScript​(Class<?> scriptClass, Binding context)` |
    `static void` | `removeClass​(Class clazz)` |
    `static Object` | `runScript​(Class scriptClass, String[] args)` |
    `static void` | `setAttribute​(Object object, String attribute, Object newValue)` |
    `static void` | `setGroovyObjectProperty​(Object newValue, GroovyObject object, String property)` | This is so we don't have to reorder the stack when we call this method.
    `static void` | `setProperties​(Object object, Map map)` | Sets the properties on the given object
    `static void` | `setProperty​(Object object, String property, Object newValue)` |
    `static void` | `setProperty2​(Object newValue, Object object, String property)` | This is so we don't have to reorder the stack when we call this method.
    `static void` | `setPropertySafe2​(Object newValue, Object object, String property)` | This is so we don't have to reorder the stack when we call this method.
    `static SpreadMap` | `spreadMap​(Object value)` |
    `static String` | `toArrayString​(Object[] arguments)` | A helper method to return the string representation of an array of objects with brace boundaries "[" and "]".
    `static String` | `toArrayString​(Object[] arguments, int maxSize, boolean safe)` | A helper method to return the string representation of an array of objects with brace boundaries "[" and "]".
    `static String` | `toListString​(Collection arg)` | A helper method to return the string representation of a list with bracket boundaries "[" and "]".
    `static String` | `toListString​(Collection arg, int maxSize)` | A helper method to return the string representation of a list with bracket boundaries "[" and "]".
    `static String` | `toListString​(Collection arg, int maxSize, boolean safe)` | A helper method to return the string representation of a list with bracket boundaries "[" and "]".
    `static String` | `toMapString​(Map arg)` | A helper method to return the string representation of a map with bracket boundaries "[" and "]".
    `static String` | `toMapString​(Map arg, int maxSize)` | A helper method to return the string representation of a map with bracket boundaries "[" and "]".
    `static String` | `toString​(Object arguments)` |
    `static String` | `toTypeString​(Object[] arguments)` | A helper method to format the arguments types as a comma-separated list.
    `static String` | `toTypeString​(Object[] arguments, int maxSize)` | A helper method to format the arguments types as a comma-separated list.
    `static Object` | `unaryMinus​(Object value)` |
    `static Object` | `unaryPlus​(Object value)` |
    `static void` | `write​(Writer out, 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 Object[] EMPTY_ARGS

    - #### EMPTY_ARGUMENTS

          protected static final Object[] EMPTY_ARGUMENTS

    - #### EMPTY_TYPES

          protected static final Class[] EMPTY_TYPES

    - #### metaRegistry

          public static final MetaClassRegistry metaRegistry

    - #### MAIN_METHOD_NAME

          public static final String MAIN_METHOD_NAME

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### InvokerHelper

          public InvokerHelper()

  - ### Method Detail

    - #### removeClass

          public static void removeClass​(Class clazz)

    - #### invokeMethodSafe

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

    - #### invokeStaticMethod

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

      Throws:
        `ClassNotFoundException`

    - #### invokeStaticNoArgumentsMethod

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

    - #### invokeConstructorOf

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

      Throws:
        `ClassNotFoundException`

    - #### invokeNoArgumentsConstructorOf

          public static Object invokeNoArgumentsConstructorOf​(Class type)

    - #### invokeClosure

          public static Object invokeClosure​(Object closure,
                                             Object arguments)

    - #### asList

          public static List asList​(Object value)

    - #### toString

          public static String toString​(Object arguments)

    - #### inspect

          public static String inspect​(Object self)

    - #### getAttribute

          public static Object getAttribute​(Object object,
                                            String attribute)

    - #### setAttribute

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

    - #### getProperty

          public static Object getProperty​(Object object,
                                           String property)

    - #### getPropertySafe

          public static Object getPropertySafe​(Object object,
                                               String property)

    - #### setProperty

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

    - #### setProperty2

          public static void setProperty2​(Object newValue,
                                          Object object,
                                          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​(Object newValue,
                                                     GroovyObject object,
                                                     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 Object getGroovyObjectProperty​(GroovyObject object,
                                                       String property)

    - #### setPropertySafe2

          public static void setPropertySafe2​(Object newValue,
                                              Object object,
                                              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​(Object object,
                                                 String methodName)

      Returns the method pointer for the given object name

    - #### unaryMinus

          public static Object unaryMinus​(Object value)

    - #### unaryPlus

          public static Object unaryPlus​(Object value)

    - #### findRegex

          public static Matcher findRegex​(Object left,
                                          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​(Object left,
                                           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​(Object[] array)

    - #### spreadMap

          public static SpreadMap spreadMap​(Object value)

    - #### createList

          public static List createList​(Object[] values)

    - #### initialCapacity

          public static int initialCapacity​(int initialEntryCnt)

      According to the initial entry count, calculate the initial capacity of hash map, which is power of 2 (SEE https://stackoverflow.com/questions/8352378/why-does-hashmap-require-that-the-initial-capacity-be-a-power-of-two)
      Parameters:
        `initialEntryCnt` - the initial entry count
      Returns:
        the initial capacity

    - #### createMap

          public static Map createMap​(Object[] values)

    - #### assertFailed

          public static void assertFailed​(Object expression,
                                          Object message)

    - #### runScript

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

    - #### createScript

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

    - #### newScript

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

      Throws:
        `InstantiationException`
        `IllegalAccessException`
        `InvocationTargetException`

    - #### setProperties

          public static void setProperties​(Object object,
                                           Map map)

      Sets the properties on the given object

    - #### write

          public static void write​(Writer out,
                                   Object object)
                            throws IOException

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

    - #### append

          public static void append​(Appendable out,
                                    Object object)
                             throws IOException

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

    - #### asIterator

          public static Iterator<Object> asIterator​(Object o)

    - #### format

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

    - #### format

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

    - #### format

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

    - #### escapeBackslashes

          public static String escapeBackslashes​(String orig)

    - #### toTypeString

          public static String toTypeString​(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 String toTypeString​(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 String toMapString​(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 String toMapString​(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 String toListString​(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 String toListString​(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 String toListString​(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 String toArrayString​(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 String toArrayString​(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 List createRange​(Object from,
                                         Object to,
                                         boolean inclusive)

    - #### bitwiseNegate

          public static Object bitwiseNegate​(Object value)

    - #### getMetaRegistry

          public static MetaClassRegistry getMetaRegistry()

    - #### getMetaClass

          public static MetaClass getMetaClass​(Object object)

    - #### getMetaClass

          public static MetaClass getMetaClass​(Class cls)

    - #### invokeMethod

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

      Invokes the given method on the object.

    - #### invokeSuperMethod

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

    - #### invokeStaticMethod

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

    - #### invokeConstructorOf

          public static Object invokeConstructorOf​(Class type,
                                                   Object arguments)

    - #### asArray

          public static Object[] asArray​(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 Object[] asUnwrappedArray​(Object arguments)