org.codehaus.groovy.runtime
Class InvokerHelper

java.lang.Object
  extended byorg.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

Version:
$Revision: 1.62 $
Author:
James Strachan

Field Summary
static java.lang.Object[] EMPTY_ARGS
           
private static java.lang.Object[] EMPTY_MAIN_ARGS
           
private static int INT_CACHE_LEN
           
private static int INT_CACHE_OFFSET
           
private static java.lang.Integer MINUS_ONE
           
private static java.lang.Integer ONE
           
private static Invoker singleton
           
private static java.lang.Integer[] SMALL_INTEGERS
           
private static java.lang.Integer ZERO
           
 
Constructor Summary
InvokerHelper()
           
 
Method Summary
static boolean asBool(java.lang.Object object)
           
static java.util.Collection asCollection(java.lang.Object collection)
           
static int asInt(java.lang.Object value)
           
static java.util.Iterator asIterator(java.lang.Object collection)
           
static java.util.List asList(java.lang.Object args)
           
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 bitNegate(java.lang.Object value)
           
static boolean booleanUnbox(java.lang.Object value)
           
static java.lang.Object box(boolean value)
           
static java.lang.Object box(byte value)
           
static java.lang.Object box(char value)
           
static java.lang.Object box(double value)
           
static java.lang.Object box(float value)
           
static java.lang.Object box(int value)
           
static java.lang.Object box(long value)
           
static java.lang.Object box(short value)
           
static byte byteUnbox(java.lang.Object value)
           
static char charUnbox(java.lang.Object value)
           
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 java.lang.Integer compareTo(java.lang.Object left, java.lang.Object right)
           
static java.lang.Object[] convertPrimitiveArray(java.lang.Object a, java.lang.Class type)
           
static boolean[] convertToBooleanArray(java.lang.Object a)
           
static byte[] convertToByteArray(java.lang.Object a)
           
static char[] convertToCharArray(java.lang.Object a)
           
static double[] convertToDoubleArray(java.lang.Object a)
           
static float[] convertToFloatArray(java.lang.Object a)
           
static int[] convertToIntArray(java.lang.Object a)
           
static long[] convertToLongArray(java.lang.Object a)
           
static java.lang.Object convertToPrimitiveArray(java.lang.Object a, java.lang.Class type)
           
static short[] convertToShortArray(java.lang.Object a)
           
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 double doubleUnbox(java.lang.Object value)
           
static java.util.regex.Matcher findRegex(java.lang.Object left, java.lang.Object right)
           
static float floatUnbox(java.lang.Object value)
           
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 Invoker getInstance()
           
static MetaClass getMetaClass(java.lang.Object object)
           
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 getVersion()
           
static java.lang.String inspect(java.lang.Object self)
           
static java.lang.Integer integerValue(int v)
          get the Integer object from an int.
static int intUnbox(java.lang.Object value)
           
static java.lang.Object invokeClosure(java.lang.Object closure, java.lang.Object arguments)
           
static java.lang.Object invokeConstructor(java.lang.String type, java.lang.Object arguments)
           
static java.lang.Object invokeConstructorOf(java.lang.Class type, java.lang.Object arguments)
           
static java.lang.Object invokeMethod(java.lang.Object object, java.lang.String methodName, java.lang.Object arguments)
           
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 invokeNoArgumentsMethod(java.lang.Object object, java.lang.String methodName)
           
static java.lang.Object invokeStaticMethod(java.lang.String type, java.lang.String methodName, java.lang.Object arguments)
           
static java.lang.Object invokeStaticNoArgumentsMethod(java.lang.String type, java.lang.String methodName)
           
static java.lang.Object invokeSuperMethod(java.lang.Object object, java.lang.String methodName, java.lang.Object arguments)
           
static boolean isCase(java.lang.Object switchValue, java.lang.Object caseExpression)
           
static long longUnbox(java.lang.Object value)
           
static boolean matchRegex(java.lang.Object left, java.lang.Object right)
           
static java.lang.Object negate(java.lang.Object value)
           
static boolean notBoolean(boolean bool)
           
static boolean notObject(java.lang.Object object)
           
protected static java.util.List primitiveArrayToList(java.lang.Object array)
          Allows conversion of arrays into a mutable List
static java.util.regex.Pattern regexPattern(java.lang.Object regex)
           
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 short shortUnbox(java.lang.Object value)
           
static java.lang.String toString(java.lang.Object arguments)
           
static java.lang.String toTypeString(java.lang.Object[] arguments)
           
static void write(java.io.Writer out, java.lang.Object object)
          Writes the given object to the given stream
 
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_MAIN_ARGS

private static final java.lang.Object[] EMPTY_MAIN_ARGS

singleton

private static final Invoker singleton

ZERO

private static final java.lang.Integer ZERO

MINUS_ONE

private static final java.lang.Integer MINUS_ONE

ONE

private static final java.lang.Integer ONE

SMALL_INTEGERS

private static java.lang.Integer[] SMALL_INTEGERS

INT_CACHE_OFFSET

private static int INT_CACHE_OFFSET

INT_CACHE_LEN

private static int INT_CACHE_LEN
Constructor Detail

InvokerHelper

public InvokerHelper()
Method Detail

getMetaClass

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

removeClass

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

getInstance

public static Invoker getInstance()

invokeNoArgumentsMethod

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

invokeMethod

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

invokeSuperMethod

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

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 type,
                                                  java.lang.String methodName,
                                                  java.lang.Object arguments)

invokeStaticNoArgumentsMethod

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

invokeConstructor

public static java.lang.Object invokeConstructor(java.lang.String type,
                                                 java.lang.Object arguments)

invokeConstructorOf

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

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)

asIterator

public static java.util.Iterator asIterator(java.lang.Object collection)

asCollection

public static java.util.Collection asCollection(java.lang.Object collection)

asList

public static java.util.List asList(java.lang.Object args)

toString

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

toTypeString

public static java.lang.String toTypeString(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.


asType

public 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

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

asBool

public static boolean asBool(java.lang.Object object)

notObject

public static boolean notObject(java.lang.Object object)

notBoolean

public static boolean notBoolean(boolean bool)

negate

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

bitNegate

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

isCase

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

compareIdentical

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

compareEqual

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

findRegex

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

matchRegex

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

regexPattern

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

compareNotEqual

public static boolean compareNotEqual(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)

compareTo

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

createTuple

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

createList

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

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)

asInt

public static int asInt(java.lang.Object value)

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)

setProperties

public static void setProperties(java.lang.Object object,
                                 java.util.Map map)
Sets the properties on the given object

Parameters:
object -
map -

getVersion

public static java.lang.String getVersion()

primitiveArrayToList

protected static java.util.List primitiveArrayToList(java.lang.Object array)
Allows conversion of arrays into a mutable List

Returns:
the array as a List

write

public static void write(java.io.Writer out,
                         java.lang.Object object)
                  throws java.io.IOException
Writes the given object to the given stream

Throws:
java.io.IOException

box

public static java.lang.Object box(boolean value)

box

public static java.lang.Object box(byte value)

box

public static java.lang.Object box(char value)

box

public static java.lang.Object box(short value)

box

public static java.lang.Object box(int value)

box

public static java.lang.Object box(long value)

box

public static java.lang.Object box(float value)

box

public static java.lang.Object box(double value)

byteUnbox

public static byte byteUnbox(java.lang.Object value)

charUnbox

public static char charUnbox(java.lang.Object value)

shortUnbox

public static short shortUnbox(java.lang.Object value)

intUnbox

public static int intUnbox(java.lang.Object value)

booleanUnbox

public static boolean booleanUnbox(java.lang.Object value)

longUnbox

public static long longUnbox(java.lang.Object value)

floatUnbox

public static float floatUnbox(java.lang.Object value)

doubleUnbox

public static double doubleUnbox(java.lang.Object value)

convertPrimitiveArray

public static java.lang.Object[] convertPrimitiveArray(java.lang.Object a,
                                                       java.lang.Class type)
Parameters:
a - array of primitives
type - component type of the array
Returns:

convertToIntArray

public static int[] convertToIntArray(java.lang.Object a)

convertToBooleanArray

public static boolean[] convertToBooleanArray(java.lang.Object a)

convertToByteArray

public static byte[] convertToByteArray(java.lang.Object a)

convertToShortArray

public static short[] convertToShortArray(java.lang.Object a)

convertToCharArray

public static char[] convertToCharArray(java.lang.Object a)

convertToLongArray

public static long[] convertToLongArray(java.lang.Object a)

convertToFloatArray

public static float[] convertToFloatArray(java.lang.Object a)

convertToDoubleArray

public static double[] convertToDoubleArray(java.lang.Object a)

convertToPrimitiveArray

public static java.lang.Object convertToPrimitiveArray(java.lang.Object a,
                                                       java.lang.Class type)

integerValue

public static java.lang.Integer integerValue(int v)
get the Integer object from an int. Cached version is used for small ints.

Parameters:
v -
Returns:


Copyright © 2003-2005 The Codehaus. All Rights Reserved.