Package org.apache.bcel.generic
Class FieldGen
- java.lang.Object
-
- org.apache.bcel.classfile.AccessFlags
-
- org.apache.bcel.generic.FieldGenOrMethodGen
-
- org.apache.bcel.generic.FieldGen
-
- All Implemented Interfaces:
java.lang.Cloneable
,NamedAndTyped
public class FieldGen extends FieldGenOrMethodGen
Template class for building up a field. The only extraordinary thing one can do is to add a constant value attribute to a field (which must of course be compatible with to the declared type).- See Also:
Field
-
-
Field Summary
Fields Modifier and Type Field Description private static BCELComparator
bcelComparator
private java.util.List<FieldObserver>
observers
private java.lang.Object
value
-
Fields inherited from class org.apache.bcel.generic.FieldGenOrMethodGen
cp, name, type
-
Fields inherited from class org.apache.bcel.classfile.AccessFlags
access_flags
-
-
Constructor Summary
Constructors Constructor Description FieldGen(int accessFlags, Type type, java.lang.String name, ConstantPoolGen cp)
Declare a field.FieldGen(Field field, ConstantPoolGen cp)
Instantiate from existing field.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addAnnotationsAsAttribute(ConstantPoolGen cp)
private int
addConstant()
void
addObserver(FieldObserver o)
Add observer for this object.void
cancelInitValue()
Remove any initial value.private void
checkType(Type atype)
FieldGen
copy(ConstantPoolGen cp)
boolean
equals(java.lang.Object obj)
Return value as defined by given BCELComparator strategy.static BCELComparator
getComparator()
Field
getField()
Get field object after having set up all necessary values.java.lang.String
getInitValue()
java.lang.String
getSignature()
int
hashCode()
Return value as defined by given BCELComparator strategy.void
removeObserver(FieldObserver o)
Remove observer for this object.static void
setComparator(BCELComparator comparator)
void
setInitValue(boolean b)
void
setInitValue(byte b)
void
setInitValue(char c)
void
setInitValue(double d)
void
setInitValue(float f)
void
setInitValue(int i)
void
setInitValue(long l)
void
setInitValue(short s)
void
setInitValue(java.lang.String str)
Set (optional) initial value of field, otherwise it will be set to null/0/false by the JVM automatically.private void
setValue(int index)
java.lang.String
toString()
Return string representation close to declaration format, 'public static final short MAX = 100', e.g..void
update()
Call notify() method on all observers.-
Methods inherited from class org.apache.bcel.generic.FieldGenOrMethodGen
addAll, addAnnotationEntry, addAttribute, clone, getAnnotationEntries, getAttributes, getConstantPool, getName, getType, removeAnnotationEntries, removeAnnotationEntry, removeAttribute, removeAttributes, setConstantPool, setName, setType
-
Methods inherited from class org.apache.bcel.classfile.AccessFlags
getAccessFlags, getModifiers, isAbstract, isAbstract, isAnnotation, isAnnotation, isEnum, isEnum, isFinal, isFinal, isInterface, isInterface, isNative, isNative, isPrivate, isPrivate, isProtected, isProtected, isPublic, isPublic, isStatic, isStatic, isStrictfp, isStrictfp, isSynchronized, isSynchronized, isSynthetic, isSynthetic, isTransient, isTransient, isVarArgs, isVarArgs, isVolatile, isVolatile, setAccessFlags, setModifiers
-
-
-
-
Field Detail
-
bcelComparator
private static BCELComparator bcelComparator
-
value
private java.lang.Object value
-
observers
private java.util.List<FieldObserver> observers
-
-
Constructor Detail
-
FieldGen
public FieldGen(Field field, ConstantPoolGen cp)
Instantiate from existing field.- Parameters:
field
- Field objectcp
- constant pool (must contain the same entries as the field's constant pool)
-
FieldGen
public FieldGen(int accessFlags, Type type, java.lang.String name, ConstantPoolGen cp)
Declare a field. If it is static (isStatic() == true) and has a basic type like int or String it may have an initial value associated with it as defined by setInitValue().- Parameters:
accessFlags
- access qualifierstype
- field typename
- field namecp
- constant pool
-
-
Method Detail
-
getComparator
public static BCELComparator getComparator()
- Returns:
- Comparison strategy object
-
setComparator
public static void setComparator(BCELComparator comparator)
- Parameters:
comparator
- Comparison strategy object
-
addAnnotationsAsAttribute
private void addAnnotationsAsAttribute(ConstantPoolGen cp)
-
addConstant
private int addConstant()
-
addObserver
public void addObserver(FieldObserver o)
Add observer for this object.
-
cancelInitValue
public void cancelInitValue()
Remove any initial value.
-
checkType
private void checkType(Type atype)
-
copy
public FieldGen copy(ConstantPoolGen cp)
- Returns:
- deep copy of this field
-
equals
public boolean equals(java.lang.Object obj)
Return value as defined by given BCELComparator strategy. By default two FieldGen objects are said to be equal when their names and signatures are equal.- Overrides:
equals
in classjava.lang.Object
- See Also:
Object.equals(Object)
-
getField
public Field getField()
Get field object after having set up all necessary values.
-
getInitValue
public java.lang.String getInitValue()
-
getSignature
public java.lang.String getSignature()
- Specified by:
getSignature
in classFieldGenOrMethodGen
- Returns:
- signature of method/field.
-
hashCode
public int hashCode()
Return value as defined by given BCELComparator strategy. By default return the hashcode of the field's name XOR signature.- Overrides:
hashCode
in classjava.lang.Object
- See Also:
Object.hashCode()
-
removeObserver
public void removeObserver(FieldObserver o)
Remove observer for this object.
-
setInitValue
public void setInitValue(boolean b)
-
setInitValue
public void setInitValue(byte b)
-
setInitValue
public void setInitValue(char c)
-
setInitValue
public void setInitValue(double d)
-
setInitValue
public void setInitValue(float f)
-
setInitValue
public void setInitValue(int i)
-
setInitValue
public void setInitValue(long l)
-
setInitValue
public void setInitValue(short s)
-
setInitValue
public void setInitValue(java.lang.String str)
Set (optional) initial value of field, otherwise it will be set to null/0/false by the JVM automatically.
-
setValue
private void setValue(int index)
-
toString
public final java.lang.String toString()
Return string representation close to declaration format, 'public static final short MAX = 100', e.g..- Overrides:
toString
in classjava.lang.Object
- Returns:
- String representation of field
-
update
public void update()
Call notify() method on all observers. This method is not called automatically whenever the state has changed, but has to be called by the user after they have finished editing the object.
-
-