de.fub.bytecode.generic
Class FieldGen

java.lang.Object
  |
  +--de.fub.bytecode.classfile.AccessFlags
        |
        +--de.fub.bytecode.generic.FieldGen
All Implemented Interfaces:
Constants

public class FieldGen
extends AccessFlags
implements Constants

Template class for building up a field. The only reasonable thing one can do is a constant value attribute to a field which must of course be compatible with to the declared type.

Version:
$Id: FieldGen.java,v 1.10 2000/02/04 08:58:35 dahm Exp $
Author:
M. Dahm
See Also:
Field

Fields inherited from class de.fub.bytecode.classfile.AccessFlags
access_flags
 
Fields inherited from interface de.fub.bytecode.Constants
AALOAD, AASTORE, ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ACCESS_NAMES, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ANEWARRAY_QUICK, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_CODE, ATTR_CONSTANT_VALUE, ATTR_DEPRECATED, ATTR_EXCEPTIONS, ATTR_INNER_CLASSES, ATTR_LINE_NUMBER_TABLE, ATTR_LOCAL_VARIABLE_TABLE, ATTR_PMG, ATTR_SIGNATURE, ATTR_SOURCE_FILE, ATTR_SYNTHETIC, ATTR_UNKNOWN, ATTRIBUTE_NAMES, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, CHECKCAST_QUICK, CONSTANT_Class, CONSTANT_Double, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_Long, CONSTANT_Methodref, CONSTANT_NameAndType, CONSTANT_NAMES, CONSTANT_String, CONSTANT_Utf8, CONSUME_STACK, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETFIELD_QUICK, GETFIELD_QUICK_W, GETFIELD2_QUICK, GETSTATIC, GETSTATIC_QUICK, GETSTATIC2_QUICK, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILLEGAL_OPCODE, ILLEGAL_TYPE, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMPDEP1, IMPDEP2, IMUL, INEG, INSTANCEOF, INSTANCEOF_QUICK, INT2BYTE, INT2CHAR, INT2SHORT, INVOKEINTERFACE, INVOKEINTERFACE_QUICK, INVOKENONVIRTUAL, INVOKENONVIRTUAL_QUICK, INVOKESPECIAL, INVOKESTATIC, INVOKESTATIC_QUICK, INVOKESUPER_QUICK, INVOKEVIRTUAL, INVOKEVIRTUAL_QUICK, INVOKEVIRTUAL_QUICK_W, INVOKEVIRTUALOBJECT_QUICK, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, KNOWN_ATTRIBUTES, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_QUICK, LDC_W, LDC_W_QUICK, LDC2_W, LDC2_W_QUICK, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MAJOR, MAJOR_1_1, MAJOR_1_2, MAX_ACC_FLAG, MAX_BYTE, MAX_SHORT, MINOR, MINOR_1_1, MINOR_1_2, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, MULTIANEWARRAY_QUICK, NEW, NEW_QUICK, NEWARRAY, NO_OF_OPERANDS, NOP, OPCODE_NAMES, POP, POP2, PRODUCE_STACK, PUSH, PUTFIELD, PUTFIELD_QUICK, PUTFIELD_QUICK_W, PUTFIELD2_QUICK, PUTSTATIC, PUTSTATIC_QUICK, PUTSTATIC2_QUICK, RESERVED, RET, RETURN, SALOAD, SASTORE, SHORT_TYPE_NAMES, SIPUSH, SWAP, SWITCH, T_ARRAY, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_OBJECT, T_REFERENCE, T_SHORT, T_UNKNOWN, T_VOID, TABLESWITCH, TYPE_NAMES, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE, WIDE
 
Constructor Summary
FieldGen(Field field, ConstantPoolGen cp)
           
FieldGen(int access_flags, Type type, java.lang.String name, ConstantPoolGen cp)
          Declare a field.
 
Method Summary
 void addAttribute(Attribute attr)
          Add an attribute to this method.
 Attribute[] getAttributes()
           
 ConstantPoolGen getConstantPool()
           
 Field getField()
          Get method object.
 java.lang.String getName()
           
 java.lang.String getSignature()
           
 Type getType()
           
 void removeAttribute(Attribute a)
          Remove an attribute.
 void setConstantPool(ConstantPoolGen cp)
           
 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.
 void setName(java.lang.String name)
           
 void setType(Type type)
           
 
Methods inherited from class de.fub.bytecode.classfile.AccessFlags
getAccessFlags, isAbstract, isAbstract, isFinal, isFinal, isInterface, isInterface, isNative, isNative, isPrivate, isPrivate, isProtected, isProtected, isPublic, isPublic, isStatic, isStatic, isSynchronized, isSynchronized, isTransient, isTransient, isVolatile, isVolatile, setAccessFlags
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FieldGen

public FieldGen(int access_flags,
                Type type,
                java.lang.String name,
                ConstantPoolGen cp)
Declare a field. If it is a static field (access_flags & ACC_STATIC != 0) 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)
Method Detail

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.

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)

addAttribute

public void addAttribute(Attribute attr)
Add an attribute to this method. Currently, the JVM knows about the `ConstantValue' and `Synthetic' attribute. Other attributes will be ignored by the JVM but do no harm.
Parameters:
a - attribute to be added

getAttributes

public Attribute[] getAttributes()
Returns:
all attributes of this field.

removeAttribute

public void removeAttribute(Attribute a)
Remove an attribute.

getField

public Field getField()
Get method object.

setType

public void setType(Type type)

getType

public Type getType()

setName

public void setName(java.lang.String name)

getName

public java.lang.String getName()

getSignature

public java.lang.String getSignature()

getConstantPool

public ConstantPoolGen getConstantPool()

setConstantPool

public void setConstantPool(ConstantPoolGen cp)