pnuts.lang
Class Types

java.lang.Object
  |
  +--pnuts.lang.Types

public class Types
extends java.lang.Object
implements PnutsParserTreeConstants

A utility class for type manupilation.


Constructor Summary
protected Types()
           
 
Method Summary
static java.lang.Class arrayType(java.lang.Class c, int dim)
           
static java.lang.Object callConstructor(java.lang.Class c, java.lang.Object[] args)
          Call a constructor
static java.lang.Object callConstructor(java.lang.Class c, java.lang.Object[] args, java.lang.Class[] types)
          Call a constructor
static java.lang.Object callConstructor(Context context, java.lang.Class c, java.lang.Object[] args, java.lang.Class[] types)
           
static java.lang.Object callMethod(java.lang.Class c, java.lang.String name, java.lang.Object[] args, java.lang.Class[] types, java.lang.Object target)
          Call a method
static java.lang.Object callMethod(java.lang.Class c, java.lang.String name, java.lang.Object[] args, java.lang.Object target)
          Call a method
static java.lang.Object callMethod(Context context, java.lang.Class c, java.lang.String name, java.lang.Object[] args, java.lang.Class[] types, java.lang.Object target)
          call a method
static java.lang.Object cast(Context context, java.lang.Class type, java.lang.Object object, boolean flag)
          This method is called by the syntax "(Class)object"
static java.lang.Object getField(Context context, java.lang.Object target, java.lang.String name)
           
static java.lang.Object getStaticField(Context context, java.lang.Class clazz, java.lang.String name)
           
static java.lang.Character parseChar(java.lang.String s)
           
static java.lang.Object[] parseFloat(java.lang.String str)
          [Number number, int offset_of_unit_symbol]
static java.lang.Object[] parseInt(java.lang.String str)
          [Number number, int offset_of_unit_symbol]
static java.lang.String parseString(java.lang.String s)
           
static java.lang.Object primitive(Context context, java.lang.Class primitiveType, java.lang.Object param, boolean flag)
          This method is called by the syntax "primitiveType(object)" and "(primitiveType)object"
static void putField(Context context, java.lang.Object target, java.lang.String name, java.lang.Object expr)
           
static void putStaticField(Context context, java.lang.Class clazz, java.lang.String name, java.lang.Object expr)
           
static java.lang.Object quantity(java.lang.Number number, java.lang.String numberString, java.lang.String unit, Context context)
           
static void readSymbolTable(pnuts.lang.SymbolTable table, java.io.ObjectInputStream s)
          Read a hashtable from objectInputStream.
static int writeSymbolTable(pnuts.lang.SymbolTable tab, pnuts.lang.SymbolTable notToSerialize, java.io.ObjectOutputStream s)
          Write a hashtable to the objectOutputStream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Types

protected Types()
Method Detail

callMethod

public static java.lang.Object callMethod(Context context,
                                          java.lang.Class c,
                                          java.lang.String name,
                                          java.lang.Object[] args,
                                          java.lang.Class[] types,
                                          java.lang.Object target)
call a method

callMethod

public static java.lang.Object callMethod(java.lang.Class c,
                                          java.lang.String name,
                                          java.lang.Object[] args,
                                          java.lang.Object target)
                                   throws java.lang.IllegalAccessException,
                                          java.lang.IllegalArgumentException,
                                          java.lang.reflect.InvocationTargetException
Call a method
Parameters:
c - the class of method
name - the method name
args - the paramters
target - the target object
Returns:
the return value

callMethod

public static java.lang.Object callMethod(java.lang.Class c,
                                          java.lang.String name,
                                          java.lang.Object[] args,
                                          java.lang.Class[] types,
                                          java.lang.Object target)
                                   throws java.lang.IllegalAccessException,
                                          java.lang.IllegalArgumentException,
                                          java.lang.reflect.InvocationTargetException
Call a method
Parameters:
c - the class of method
name - the method name
args - the paramters
types - the types of the formal arguments
target - the target object
Returns:
the return value

callConstructor

public static java.lang.Object callConstructor(Context context,
                                               java.lang.Class c,
                                               java.lang.Object[] args,
                                               java.lang.Class[] types)

callConstructor

public static java.lang.Object callConstructor(java.lang.Class c,
                                               java.lang.Object[] args)
                                        throws java.lang.IllegalAccessException,
                                               java.lang.IllegalArgumentException,
                                               java.lang.reflect.InvocationTargetException,
                                               java.lang.InstantiationException
Call a constructor
Parameters:
c - the class of constructor
args - the paramters
Returns:
the created instance

callConstructor

public static java.lang.Object callConstructor(java.lang.Class c,
                                               java.lang.Object[] args,
                                               java.lang.Class[] types)
                                        throws java.lang.IllegalAccessException,
                                               java.lang.IllegalArgumentException,
                                               java.lang.reflect.InvocationTargetException,
                                               java.lang.InstantiationException
Call a constructor
Parameters:
c - the class of constructor
args - the paramters
types - the types of the formal arguments
Returns:
the created instance

putStaticField

public static void putStaticField(Context context,
                                  java.lang.Class clazz,
                                  java.lang.String name,
                                  java.lang.Object expr)

getStaticField

public static java.lang.Object getStaticField(Context context,
                                              java.lang.Class clazz,
                                              java.lang.String name)

putField

public static void putField(Context context,
                            java.lang.Object target,
                            java.lang.String name,
                            java.lang.Object expr)

getField

public static java.lang.Object getField(Context context,
                                        java.lang.Object target,
                                        java.lang.String name)

arrayType

public static java.lang.Class arrayType(java.lang.Class c,
                                        int dim)

writeSymbolTable

public static int writeSymbolTable(pnuts.lang.SymbolTable tab,
                                   pnuts.lang.SymbolTable notToSerialize,
                                   java.io.ObjectOutputStream s)
                            throws java.io.IOException
Write a hashtable to the objectOutputStream. If a value of the hashtable is a Class object, it is encapsulated to avoid NotSerializableException. But if a value contains a Class object in its structure e.g. "new Class[]{ Object.class }", NotSerializableException is thrown, even though the Class object is Serializable. If notToSerialize is not null, falied keys are accumulated in notToSerialize. This is a workaround for bug:4075221.

readSymbolTable

public static void readSymbolTable(pnuts.lang.SymbolTable table,
                                   java.io.ObjectInputStream s)
                            throws java.io.IOException,
                                   java.lang.ClassNotFoundException
Read a hashtable from objectInputStream. If Class objects are encapsulated, it retrieves the Class objects from them.

parseInt

public static java.lang.Object[] parseInt(java.lang.String str)
[Number number, int offset_of_unit_symbol]

parseFloat

public static java.lang.Object[] parseFloat(java.lang.String str)
[Number number, int offset_of_unit_symbol]

parseString

public static java.lang.String parseString(java.lang.String s)

parseChar

public static java.lang.Character parseChar(java.lang.String s)

quantity

public static java.lang.Object quantity(java.lang.Number number,
                                        java.lang.String numberString,
                                        java.lang.String unit,
                                        Context context)

primitive

public static java.lang.Object primitive(Context context,
                                         java.lang.Class primitiveType,
                                         java.lang.Object param,
                                         boolean flag)
This method is called by the syntax "primitiveType(object)" and "(primitiveType)object"
Parameters:
context - the context
primitiveType - a primitive type
param - the parameter
flag - string<->number conversion

cast

public static java.lang.Object cast(Context context,
                                    java.lang.Class type,
                                    java.lang.Object object,
                                    boolean flag)
This method is called by the syntax "(Class)object"
Parameters:
context - the context
type - the type
flag - object_array<->primitive_array conversion