Class FieldGen

All Implemented Interfaces:
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 Details

  • Constructor Details

    • FieldGen

      public FieldGen(Field field, ConstantPoolGen cp)
      Instantiate from existing field.
      Parameters:
      field - Field object.
      cp - constant pool (must contain the same entries as the field's constant pool).
    • FieldGen

      public FieldGen(int accessFlags, Type type, 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 qualifiers
      type - field type
      name - field name
      cp - constant pool
  • Method Details

    • getComparator

      public static BCELComparator<FieldGen> getComparator()
      Returns:
      Comparison strategy object.
    • setComparator

      public static void setComparator(BCELComparator<FieldGen> 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(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 class Object
      See Also:
    • getField

      public Field getField()
      Gets field object after having set up all necessary values.
    • getInitValue

      public String getInitValue()
    • getSignature

      public String getSignature()
      Specified by:
      getSignature in class FieldGenOrMethodGen
      Returns:
      signature of method/field.
    • hashCode

      public int hashCode()
      Return value as defined by given BCELComparator strategy. By default return the hash code of the field's name XOR signature.
      Overrides:
      hashCode in class Object
      See Also:
    • 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(String str)
      Sets (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 String toString()
      Return string representation close to declaration format, 'public static final short MAX = 100', e.g..
      Overrides:
      toString in class 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.