org.apache.bcel.generic
Class Type

java.lang.Object
  extended by org.apache.bcel.generic.Type
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
BasicType, DOUBLE_Upper, LONG_Upper, ReferenceType, ReturnaddressType

public abstract class Type
extends Object
implements Serializable

Abstract super class for all possible java types, namely basic types such as int, object types like String and array types, e.g. int[]

Version:
$Id: Type.java 393344 2006-04-12 00:38:34Z tcurdt $
See Also:
Serialized Form

Field Summary
static BasicType BOOLEAN
           
static BasicType BYTE
           
static BasicType CHAR
           
static ObjectType CLASS
           
static BasicType DOUBLE
           
static BasicType FLOAT
           
static BasicType INT
           
static BasicType LONG
           
static Type[] NO_ARGS
           
static ReferenceType NULL
           
static ObjectType OBJECT
           
static BasicType SHORT
           
protected  String signature
           
static ObjectType STRING
           
static ObjectType STRINGBUFFER
           
static ObjectType THROWABLE
           
protected  byte type
           
static Type UNKNOWN
           
static BasicType VOID
          Predefined constants
 
Constructor Summary
protected Type(byte t, String s)
           
 
Method Summary
 boolean equals(Object o)
           
static Type[] getArgumentTypes(String signature)
          Convert arguments of a method (signature) to an array of Type objects.
static String getMethodSignature(Type return_type, Type[] arg_types)
          Convert type to Java method signature, e.g.
static Type getReturnType(String signature)
          Convert return value of a method (signature) to a Type object.
 String getSignature()
           
static String getSignature(Method meth)
           
 int getSize()
           
 byte getType()
           
static Type getType(Class cl)
          Convert runtime java.lang.Class to BCEL Type object.
static Type getType(String signature)
          Convert signature to a Type object.
static Type[] getTypes(Class[] classes)
          Convert runtime java.lang.Class[] to BCEL Type objects.
 int hashCode()
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

type

protected byte type

signature

protected String signature

VOID

public static final BasicType VOID
Predefined constants


BOOLEAN

public static final BasicType BOOLEAN

INT

public static final BasicType INT

SHORT

public static final BasicType SHORT

BYTE

public static final BasicType BYTE

LONG

public static final BasicType LONG

DOUBLE

public static final BasicType DOUBLE

FLOAT

public static final BasicType FLOAT

CHAR

public static final BasicType CHAR

OBJECT

public static final ObjectType OBJECT

CLASS

public static final ObjectType CLASS

STRING

public static final ObjectType STRING

STRINGBUFFER

public static final ObjectType STRINGBUFFER

THROWABLE

public static final ObjectType THROWABLE

NO_ARGS

public static final Type[] NO_ARGS

NULL

public static final ReferenceType NULL

UNKNOWN

public static final Type UNKNOWN
Constructor Detail

Type

protected Type(byte t,
               String s)
Method Detail

hashCode

public int hashCode()
Overrides:
hashCode in class Object
Returns:
hashcode of Type

equals

public boolean equals(Object o)
Overrides:
equals in class Object
Returns:
whether the Types are equal

getSignature

public String getSignature()
Returns:
signature for given type.

getType

public byte getType()
Returns:
type as defined in Constants

getSize

public int getSize()
Returns:
stack size of this type (2 for long and double, 0 for void, 1 otherwise)

toString

public String toString()
Overrides:
toString in class Object
Returns:
Type string, e.g. `int[]'

getMethodSignature

public static String getMethodSignature(Type return_type,
                                        Type[] arg_types)
Convert type to Java method signature, e.g. int[] f(java.lang.String x) becomes (Ljava/lang/String;)[I

Parameters:
return_type - what the method returns
arg_types - what are the argument types
Returns:
method signature for given type(s).

getType

public static final Type getType(String signature)
                          throws StringIndexOutOfBoundsException
Convert signature to a Type object.

Parameters:
signature - signature string such as Ljava/lang/String;
Returns:
type object
Throws:
StringIndexOutOfBoundsException

getReturnType

public static Type getReturnType(String signature)
Convert return value of a method (signature) to a Type object.

Parameters:
signature - signature string such as (Ljava/lang/String;)V
Returns:
return type

getArgumentTypes

public static Type[] getArgumentTypes(String signature)
Convert arguments of a method (signature) to an array of Type objects.

Parameters:
signature - signature string such as (Ljava/lang/String;)V
Returns:
array of argument types

getType

public static Type getType(Class cl)
Convert runtime java.lang.Class to BCEL Type object.

Parameters:
cl - Java class
Returns:
corresponding Type object

getTypes

public static Type[] getTypes(Class[] classes)
Convert runtime java.lang.Class[] to BCEL Type objects.

Parameters:
classes - an array of runtime class objects
Returns:
array of corresponding Type objects

getSignature

public static String getSignature(Method meth)


Copyright © 2002-2006 Apache Software Foundation. All Rights Reserved.