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
    • Constructor Detail

      • FieldGen

        public FieldGen​(int access_flags,
                        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:
        access_flags - access qualifiers
        type - field type
        name - field name
        cp - constant pool
      • 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)
    • Method Detail

      • setInitValue

        public void setInitValue​(String str)
        Set (optional) initial value of field, otherwise it will be set to null/0/false by the JVM automatically.
      • setInitValue

        public void setInitValue​(long l)
      • setInitValue

        public void setInitValue​(int i)
      • setInitValue

        public void setInitValue​(short s)
      • setInitValue

        public void setInitValue​(char c)
      • setInitValue

        public void setInitValue​(byte b)
      • setInitValue

        public void setInitValue​(boolean b)
      • setInitValue

        public void setInitValue​(float f)
      • setInitValue

        public void setInitValue​(double d)
      • cancelInitValue

        public void cancelInitValue()
        Remove any initial value.
      • getField

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

        public void addObserver​(FieldObserver o)
        Add observer for this object.
      • removeObserver

        public void removeObserver​(FieldObserver o)
        Remove observer for this object.
      • 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 he has finished editing the object.
      • getInitValue

        public String getInitValue()
      • 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
      • 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​(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:
        Object.equals(java.lang.Object)
      • 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 class Object
        See Also:
        Object.hashCode()