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:
    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 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 and Description
    `FieldGen(Field field, ConstantPoolGen cp)` Instantiate from existing field.
    `FieldGen(int accessFlags, Type type, String name, ConstantPoolGen cp)` Declare a field.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addObserver(FieldObserver o)` Add observer for this object.
    `void` | `cancelInitValue()` Remove any initial value.
    `FieldGen` | `copy(ConstantPoolGen cp)`
    `boolean` | `equals(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.
    `String` | `getInitValue()`
    `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(String str)` Set (optional) initial value of field, otherwise it will be set to null/0/false by the JVM automatically.
    `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`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### 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 Detail

    - #### getComparator

          public static BCELComparator getComparator()

      Returns:
        Comparison strategy object

    - #### setComparator

          public static void setComparator(BCELComparator comparator)

      Parameters:
        `comparator` - Comparison strategy object

    - #### addObserver

          public void addObserver(FieldObserver o)

      Add observer for this object.

    - #### cancelInitValue

          public void cancelInitValue()

      Remove any initial value.

    - #### 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:
        `Object.equals(Object)`

    - #### getField

          public Field getField()

      Get 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 hashcode of the field's name XOR signature.
      Overrides:
        `hashCode` in class `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(String str)

      Set (optional) initial value of field, otherwise it will be set to null/0/false by the JVM automatically.

    - #### 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.

Copyright © 2004–2022 The Apache Software Foundation. All rights reserved.