org.codehaus.groovy.runtime
Class ScriptBytecodeAdapter

java.lang.Object
  extended by org.codehaus.groovy.runtime.ScriptBytecodeAdapter

public class ScriptBytecodeAdapter
extends Object

A static helper class to interface bytecode and runtime

Version:
$Revision: 17788 $
Author:
Jochen Theodorou

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

ScriptBytecodeAdapter

public ScriptBytecodeAdapter()
Method Detail

unwrap

public static Throwable unwrap(GroovyRuntimeException gre)

invokeMethodOnCurrentN

public static Object invokeMethodOnCurrentN(Class senderClass,
                                            GroovyObject receiver,
                                            String messageName,
                                            Object[] messageArguments)
                                     throws Throwable
Throws:
Throwable

invokeMethodOnCurrentNSafe

public static Object invokeMethodOnCurrentNSafe(Class senderClass,
                                                GroovyObject receiver,
                                                String messageName,
                                                Object[] messageArguments)
                                         throws Throwable
Throws:
Throwable

invokeMethodOnCurrentNSpreadSafe

public static Object invokeMethodOnCurrentNSpreadSafe(Class senderClass,
                                                      GroovyObject receiver,
                                                      String messageName,
                                                      Object[] messageArguments)
                                               throws Throwable
Throws:
Throwable

invokeMethodOnCurrent0

public static Object invokeMethodOnCurrent0(Class senderClass,
                                            GroovyObject receiver,
                                            String messageName)
                                     throws Throwable
Throws:
Throwable

invokeMethodOnCurrent0Safe

public static Object invokeMethodOnCurrent0Safe(Class senderClass,
                                                GroovyObject receiver,
                                                String messageName,
                                                Object[] messageArguments)
                                         throws Throwable
Throws:
Throwable

invokeMethodOnCurrent0SpreadSafe

public static Object invokeMethodOnCurrent0SpreadSafe(Class senderClass,
                                                      GroovyObject receiver,
                                                      String messageName,
                                                      Object[] messageArguments)
                                               throws Throwable
Throws:
Throwable

invokeMethodOnSuperN

public static Object invokeMethodOnSuperN(Class senderClass,
                                          GroovyObject receiver,
                                          String messageName,
                                          Object[] messageArguments)
                                   throws Throwable
Throws:
Throwable

invokeMethodOnSuperNSafe

public static Object invokeMethodOnSuperNSafe(Class senderClass,
                                              GroovyObject receiver,
                                              String messageName,
                                              Object[] messageArguments)
                                       throws Throwable
Throws:
Throwable

invokeMethodOnSuperNSpreadSafe

public static Object invokeMethodOnSuperNSpreadSafe(Class senderClass,
                                                    GroovyObject receiver,
                                                    String messageName,
                                                    Object[] messageArguments)
                                             throws Throwable
Throws:
Throwable

invokeMethodOnSuper0

public static Object invokeMethodOnSuper0(Class senderClass,
                                          GroovyObject receiver,
                                          String messageName)
                                   throws Throwable
Throws:
Throwable

invokeMethodOnSuper0Safe

public static Object invokeMethodOnSuper0Safe(Class senderClass,
                                              GroovyObject receiver,
                                              String messageName,
                                              Object[] messageArguments)
                                       throws Throwable
Throws:
Throwable

invokeMethodOnSuper0SpreadSafe

public static Object invokeMethodOnSuper0SpreadSafe(Class senderClass,
                                                    GroovyObject receiver,
                                                    String messageName,
                                                    Object[] messageArguments)
                                             throws Throwable
Throws:
Throwable

invokeMethodN

public static Object invokeMethodN(Class senderClass,
                                   Object receiver,
                                   String messageName,
                                   Object[] messageArguments)
                            throws Throwable
Throws:
Throwable

invokeMethodNSafe

public static Object invokeMethodNSafe(Class senderClass,
                                       Object receiver,
                                       String messageName,
                                       Object[] messageArguments)
                                throws Throwable
Throws:
Throwable

invokeMethodNSpreadSafe

public static Object invokeMethodNSpreadSafe(Class senderClass,
                                             Object receiver,
                                             String messageName,
                                             Object[] messageArguments)
                                      throws Throwable
Throws:
Throwable

invokeMethod0

public static Object invokeMethod0(Class senderClass,
                                   Object receiver,
                                   String messageName)
                            throws Throwable
Throws:
Throwable

invokeMethod0Safe

public static Object invokeMethod0Safe(Class senderClass,
                                       Object receiver,
                                       String messageName)
                                throws Throwable
Throws:
Throwable

invokeMethod0SpreadSafe

public static Object invokeMethod0SpreadSafe(Class senderClass,
                                             Object receiver,
                                             String messageName)
                                      throws Throwable
Throws:
Throwable

invokeStaticMethodN

public static Object invokeStaticMethodN(Class senderClass,
                                         Class receiver,
                                         String messageName,
                                         Object[] messageArguments)
                                  throws Throwable
Throws:
Throwable

invokeStaticMethod0

public static Object invokeStaticMethod0(Class senderClass,
                                         Class receiver,
                                         String messageName)
                                  throws Throwable
Throws:
Throwable

invokeNewN

public static Object invokeNewN(Class senderClass,
                                Class receiver,
                                Object arguments)
                         throws Throwable
Throws:
Throwable

invokeNew0

public static Object invokeNew0(Class senderClass,
                                Class receiver)
                         throws Throwable
Throws:
Throwable

selectConstructorAndTransformArguments

public static int selectConstructorAndTransformArguments(Object[] arguments,
                                                         int numberOfConstructors,
                                                         Class which)
                                                  throws Throwable
Throws:
Throwable

getFieldOnSuper

public static Object getFieldOnSuper(Class senderClass,
                                     Object receiver,
                                     String messageName)
                              throws Throwable
Throws:
Throwable

getFieldOnSuperSafe

public static Object getFieldOnSuperSafe(Class senderClass,
                                         Object receiver,
                                         String messageName)
                                  throws Throwable
Throws:
Throwable

getFieldOnSuperSpreadSafe

public static Object getFieldOnSuperSpreadSafe(Class senderClass,
                                               Object receiver,
                                               String messageName)
                                        throws Throwable
Throws:
Throwable

setFieldOnSuper

public static void setFieldOnSuper(Object messageArgument,
                                   Class senderClass,
                                   Object receiver,
                                   String messageName)
                            throws Throwable
Throws:
Throwable

setFieldOnSuperSafe

public static void setFieldOnSuperSafe(Object messageArgument,
                                       Class senderClass,
                                       Object receiver,
                                       String messageName)
                                throws Throwable
Throws:
Throwable

setFieldOnSuperSpreadSafe

public static void setFieldOnSuperSpreadSafe(Object messageArgument,
                                             Class senderClass,
                                             Object receiver,
                                             String messageName)
                                      throws Throwable
Throws:
Throwable

getField

public static Object getField(Class senderClass,
                              Object receiver,
                              String messageName)
                       throws Throwable
Throws:
Throwable

getFieldSafe

public static Object getFieldSafe(Class senderClass,
                                  Object receiver,
                                  String messageName)
                           throws Throwable
Throws:
Throwable

getFieldSpreadSafe

public static Object getFieldSpreadSafe(Class senderClass,
                                        Object receiver,
                                        String messageName)
                                 throws Throwable
Throws:
Throwable

setField

public static void setField(Object messageArgument,
                            Class senderClass,
                            Object receiver,
                            String messageName)
                     throws Throwable
Throws:
Throwable

setFieldSafe

public static void setFieldSafe(Object messageArgument,
                                Class senderClass,
                                Object receiver,
                                String messageName)
                         throws Throwable
Throws:
Throwable

setFieldSpreadSafe

public static void setFieldSpreadSafe(Object messageArgument,
                                      Class senderClass,
                                      Object receiver,
                                      String messageName)
                               throws Throwable
Throws:
Throwable

getGroovyObjectField

public static Object getGroovyObjectField(Class senderClass,
                                          GroovyObject receiver,
                                          String messageName)
                                   throws Throwable
Throws:
Throwable

getGroovyObjectFieldSafe

public static Object getGroovyObjectFieldSafe(Class senderClass,
                                              GroovyObject receiver,
                                              String messageName)
                                       throws Throwable
Throws:
Throwable

getGroovyObjectFieldSpreadSafe

public static Object getGroovyObjectFieldSpreadSafe(Class senderClass,
                                                    GroovyObject receiver,
                                                    String messageName)
                                             throws Throwable
Throws:
Throwable

setGroovyObjectField

public static void setGroovyObjectField(Object messageArgument,
                                        Class senderClass,
                                        GroovyObject receiver,
                                        String messageName)
                                 throws Throwable
Throws:
Throwable

setGroovyObjectFieldSafe

public static void setGroovyObjectFieldSafe(Object messageArgument,
                                            Class senderClass,
                                            GroovyObject receiver,
                                            String messageName)
                                     throws Throwable
Throws:
Throwable

setGroovyObjectFieldSpreadSafe

public static void setGroovyObjectFieldSpreadSafe(Object messageArgument,
                                                  Class senderClass,
                                                  GroovyObject receiver,
                                                  String messageName)
                                           throws Throwable
Throws:
Throwable

getPropertyOnSuper

public static Object getPropertyOnSuper(Class senderClass,
                                        GroovyObject receiver,
                                        String messageName)
                                 throws Throwable
Throws:
Throwable

getPropertyOnSuperSafe

public static Object getPropertyOnSuperSafe(Class senderClass,
                                            GroovyObject receiver,
                                            String messageName)
                                     throws Throwable
Throws:
Throwable

getPropertyOnSuperSpreadSafe

public static Object getPropertyOnSuperSpreadSafe(Class senderClass,
                                                  GroovyObject receiver,
                                                  String messageName)
                                           throws Throwable
Throws:
Throwable

setPropertyOnSuper

public static void setPropertyOnSuper(Object messageArgument,
                                      Class senderClass,
                                      GroovyObject receiver,
                                      String messageName)
                               throws Throwable
Throws:
Throwable

setPropertyOnSuperSafe

public static void setPropertyOnSuperSafe(Object messageArgument,
                                          Class senderClass,
                                          GroovyObject receiver,
                                          String messageName)
                                   throws Throwable
Throws:
Throwable

setPropertyOnSuperSpreadSafe

public static void setPropertyOnSuperSpreadSafe(Object messageArgument,
                                                Class senderClass,
                                                GroovyObject receiver,
                                                String messageName)
                                         throws Throwable
Throws:
Throwable

getProperty

public static Object getProperty(Class senderClass,
                                 Object receiver,
                                 String messageName)
                          throws Throwable
Throws:
Throwable

getPropertySafe

public static Object getPropertySafe(Class senderClass,
                                     Object receiver,
                                     String messageName)
                              throws Throwable
Throws:
Throwable

getPropertySpreadSafe

public static Object getPropertySpreadSafe(Class senderClass,
                                           Object receiver,
                                           String messageName)
                                    throws Throwable
Throws:
Throwable

setProperty

public static void setProperty(Object messageArgument,
                               Class senderClass,
                               Object receiver,
                               String messageName)
                        throws Throwable
Throws:
Throwable

setPropertySafe

public static void setPropertySafe(Object messageArgument,
                                   Class senderClass,
                                   Object receiver,
                                   String messageName)
                            throws Throwable
Throws:
Throwable

setPropertySpreadSafe

public static void setPropertySpreadSafe(Object messageArgument,
                                         Class senderClass,
                                         Object receiver,
                                         String messageName)
                                  throws Throwable
Throws:
Throwable

getGroovyObjectProperty

public static Object getGroovyObjectProperty(Class senderClass,
                                             GroovyObject receiver,
                                             String messageName)
                                      throws Throwable
Throws:
Throwable

getGroovyObjectPropertySafe

public static Object getGroovyObjectPropertySafe(Class senderClass,
                                                 GroovyObject receiver,
                                                 String messageName)
                                          throws Throwable
Throws:
Throwable

getGroovyObjectPropertySpreadSafe

public static Object getGroovyObjectPropertySpreadSafe(Class senderClass,
                                                       GroovyObject receiver,
                                                       String messageName)
                                                throws Throwable
Throws:
Throwable

setGroovyObjectProperty

public static void setGroovyObjectProperty(Object messageArgument,
                                           Class senderClass,
                                           GroovyObject receiver,
                                           String messageName)
                                    throws Throwable
Throws:
Throwable

setGroovyObjectPropertySafe

public static void setGroovyObjectPropertySafe(Object messageArgument,
                                               Class senderClass,
                                               GroovyObject receiver,
                                               String messageName)
                                        throws Throwable
Throws:
Throwable

setGroovyObjectPropertySpreadSafe

public static void setGroovyObjectPropertySpreadSafe(Object messageArgument,
                                                     Class senderClass,
                                                     GroovyObject receiver,
                                                     String messageName)
                                              throws Throwable
Throws:
Throwable

getMethodPointer

public static Closure getMethodPointer(Object object,
                                       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 Object invokeClosure(Object closure,
                                   Object[] arguments)
                            throws Throwable
Throws:
Throwable

asType

public static Object asType(Object object,
                            Class type)
                     throws 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:
Throwable - if the coercion fails

castToType

public static Object castToType(Object object,
                                Class type)
                         throws 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:
Throwable - if the type casting fails

createTuple

public static Tuple createTuple(Object[] array)

createList

public static List createList(Object[] values)

createPojoWrapper

public static Wrapper createPojoWrapper(Object val,
                                        Class clazz)

createGroovyObjectWrapper

public static Wrapper createGroovyObjectWrapper(GroovyObject val,
                                                Class clazz)

createMap

public static Map createMap(Object[] values)

createRange

public static List createRange(Object from,
                               Object to,
                               boolean inclusive)
                        throws Throwable
Throws:
Throwable

assertFailed

public static void assertFailed(Object expression,
                                Object message)

isCase

public static boolean isCase(Object switchValue,
                             Object caseExpression)
                      throws Throwable
Throws:
Throwable

compareIdentical

public static boolean compareIdentical(Object left,
                                       Object right)

compareEqual

public static boolean compareEqual(Object left,
                                   Object right)

compareNotEqual

public static boolean compareNotEqual(Object left,
                                      Object right)

compareTo

public static Integer compareTo(Object left,
                                Object right)

compareLessThan

public static boolean compareLessThan(Object left,
                                      Object right)

compareLessThanEqual

public static boolean compareLessThanEqual(Object left,
                                           Object right)

compareGreaterThan

public static boolean compareGreaterThan(Object left,
                                         Object right)

compareGreaterThanEqual

public static boolean compareGreaterThanEqual(Object left,
                                              Object right)

regexPattern

public static Pattern regexPattern(Object regex)

findRegex

public static Matcher findRegex(Object left,
                                Object right)
                         throws Throwable
Throws:
Throwable

matchRegex

public static boolean matchRegex(Object left,
                                 Object right)

despreadList

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

spreadMap

public static Object spreadMap(Object value)

unaryMinus

public static Object unaryMinus(Object value)
                         throws Throwable
Throws:
Throwable

unaryPlus

public static Object unaryPlus(Object value)
                        throws Throwable
Throws:
Throwable

bitwiseNegate

public static Object bitwiseNegate(Object value)
                            throws Throwable
Throws:
Throwable

initMetaClass

public static MetaClass initMetaClass(Object object)

Copyright © 2003-2010 The Codehaus. All rights reserved.