org.apache.bcel.classfile
Class Constant

java.lang.Object
  extended by org.apache.bcel.classfile.Constant
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Node
Direct Known Subclasses:
ConstantClass, ConstantCP, ConstantDouble, ConstantFloat, ConstantInteger, ConstantLong, ConstantNameAndType, ConstantString, ConstantUtf8

public abstract class Constant
extends java.lang.Object
implements java.lang.Cloneable, Node, java.io.Serializable

Abstract superclass for classes to represent the different constant types in the constant pool of a class file. The classes keep closely to the JVM specification.

Version:
$Id: Constant.java 386056 2006-03-15 11:31:56Z tcurdt $
Author:
M. Dahm
See Also:
Serialized Form

Field Summary
private static BCELComparator _cmp
           
protected  byte tag
           
 
Constructor Summary
Constant(byte tag)
           
 
Method Summary
abstract  void accept(Visitor v)
          Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.
 java.lang.Object clone()
           
 Constant copy()
           
abstract  void dump(java.io.DataOutputStream file)
           
 boolean equals(java.lang.Object obj)
          Return value as defined by given BCELComparator strategy.
static BCELComparator getComparator()
           
 byte getTag()
           
 int hashCode()
          Return value as defined by given BCELComparator strategy.
(package private) static Constant readConstant(java.io.DataInputStream file)
          Read one constant from the given file, the type depends on a tag byte.
static void setComparator(BCELComparator comparator)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

_cmp

private static BCELComparator _cmp

tag

protected byte tag
Constructor Detail

Constant

Constant(byte tag)
Method Detail

accept

public abstract void accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.

Specified by:
accept in interface Node
Parameters:
v - Visitor object

dump

public abstract void dump(java.io.DataOutputStream file)
                   throws java.io.IOException
Throws:
java.io.IOException

getTag

public final byte getTag()
Returns:
Tag of constant, i.e., its type. No setTag() method to avoid confusion.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
Returns:
String representation.

copy

public Constant copy()
Returns:
deep copy of this constant

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Overrides:
clone in class java.lang.Object
Throws:
java.lang.CloneNotSupportedException

readConstant

static final Constant readConstant(java.io.DataInputStream file)
                            throws java.io.IOException,
                                   ClassFormatException
Read one constant from the given file, the type depends on a tag byte.

Parameters:
file - Input stream
Returns:
Constant object
Throws:
java.io.IOException
ClassFormatException

getComparator

public static BCELComparator getComparator()
Returns:
Comparison strategy object

setComparator

public static void setComparator(BCELComparator comparator)
Parameters:
comparator - Comparison strategy object

equals

public boolean equals(java.lang.Object obj)
Return value as defined by given BCELComparator strategy. By default two Constant objects are said to be equal when the result of toString() is equal.

Overrides:
equals in class java.lang.Object
See Also:
Object.equals(java.lang.Object)

hashCode

public int hashCode()
Return value as defined by given BCELComparator strategy. By default return the hashcode of the result of toString().

Overrides:
hashCode in class java.lang.Object
See Also:
Object.hashCode()