org.aspectj.apache.bcel.generic
Class Type

java.lang.Object
  extended by org.aspectj.apache.bcel.generic.Type
Direct Known Subclasses:
BasicType, ReferenceType, ReturnaddressType

public abstract class Type
extends java.lang.Object

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


Nested Class Summary
static class Type.TypeHolder
           
 
Field Summary
static BasicType BOOLEAN
           
static BasicType BYTE
           
static BasicType CHAR
           
static ObjectType CLASS
           
static BasicType DOUBLE
           
static ObjectType EXCEPTION
           
static BasicType FLOAT
           
static BasicType INT
           
static ObjectType INTEGER
           
static ObjectType ITERATOR
           
static ObjectType LIST
           
static BasicType LONG
           
static Type[] NO_ARGS
           
static ReferenceType NULL
           
static ObjectType OBJECT
           
static ObjectType OBJECT_ARRAY
           
static BasicType SHORT
           
protected  java.lang.String signature
           
static ObjectType STRING
           
static ObjectType STRING_ARRAY
           
static Type[] STRINGARRAY1
           
static Type[] STRINGARRAY2
           
static Type[] STRINGARRAY3
           
static Type[] STRINGARRAY4
           
static Type[] STRINGARRAY5
           
static Type[] STRINGARRAY6
           
static Type[] STRINGARRAY7
           
static ObjectType STRINGBUFFER
           
static ObjectType STRINGBUILDER
           
static ObjectType THROWABLE
           
protected  byte type
           
static Type UNKNOWN
           
static BasicType VOID
           
 
Constructor Summary
protected Type(byte t, java.lang.String s)
           
 
Method Summary
static int getArgumentSizes(java.lang.String signature)
          Work out the type of each argument in the signature and return the cumulative sizes of all the types (size means number of stack slots it consumes, eg double=2, int=1).
static Type[] getArgumentTypes(java.lang.String signature)
          Convert arguments of a method (signature) to an array of Type objects.
static Type getReturnType(java.lang.String signature)
          Convert return value of a method (signature) to a Type object.
 java.lang.String getSignature()
           
static java.lang.String getSignature(java.lang.reflect.Constructor cons)
           
static java.lang.String getSignature(java.lang.reflect.Method meth)
           
 int getSize()
           
 byte getType()
           
static Type getType(java.lang.Class cl)
          Convert runtime java.lang.Class to BCEL Type object.
static Type getType(java.lang.String signature)
           
static Type.TypeHolder getTypeInternal(java.lang.String signature)
          Convert signature to a Type object.
static int getTypeSize(java.lang.String signature)
          Return the size of the type expressed in the signature.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

type

protected byte type

signature

protected java.lang.String signature

VOID

public static final BasicType VOID

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

STRING

public static final ObjectType STRING

OBJECT_ARRAY

public static final ObjectType OBJECT_ARRAY

STRING_ARRAY

public static final ObjectType STRING_ARRAY

STRINGBUFFER

public static final ObjectType STRINGBUFFER

STRINGBUILDER

public static final ObjectType STRINGBUILDER

THROWABLE

public static final ObjectType THROWABLE

CLASS

public static final ObjectType CLASS

INTEGER

public static final ObjectType INTEGER

EXCEPTION

public static final ObjectType EXCEPTION

LIST

public static final ObjectType LIST

ITERATOR

public static final ObjectType ITERATOR

NO_ARGS

public static final Type[] NO_ARGS

NULL

public static final ReferenceType NULL

UNKNOWN

public static final Type UNKNOWN

STRINGARRAY1

public static final Type[] STRINGARRAY1

STRINGARRAY2

public static final Type[] STRINGARRAY2

STRINGARRAY3

public static final Type[] STRINGARRAY3

STRINGARRAY4

public static final Type[] STRINGARRAY4

STRINGARRAY5

public static final Type[] STRINGARRAY5

STRINGARRAY6

public static final Type[] STRINGARRAY6

STRINGARRAY7

public static final Type[] STRINGARRAY7
Constructor Detail

Type

protected Type(byte t,
               java.lang.String s)
Method Detail

getSignature

public java.lang.String getSignature()

getType

public byte getType()

getSize

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

toString

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

getType

public static final Type getType(java.lang.String signature)

getTypeInternal

public static final Type.TypeHolder getTypeInternal(java.lang.String signature)
                                             throws java.lang.StringIndexOutOfBoundsException
Convert signature to a Type object.

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

getReturnType

public static Type getReturnType(java.lang.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(java.lang.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

getArgumentSizes

public static int getArgumentSizes(java.lang.String signature)
Work out the type of each argument in the signature and return the cumulative sizes of all the types (size means number of stack slots it consumes, eg double=2, int=1). Unlike the call above, this does minimal unpacking


getTypeSize

public static int getTypeSize(java.lang.String signature)
Return the size of the type expressed in the signature. The signature should contain only one type.


getType

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

Parameters:
cl - Java class
Returns:
corresponding Type object

getSignature

public static java.lang.String getSignature(java.lang.reflect.Method meth)

getSignature

public static java.lang.String getSignature(java.lang.reflect.Constructor cons)