JML

org.multijava.util.classfile
Class FieldInfo

java.lang.Object
  extended byorg.multijava.util.classfile.Member
      extended byorg.multijava.util.classfile.FieldInfo
All Implemented Interfaces:
Comparable, Constants

public class FieldInfo
extends Member

VMS 4.5: Fields Each field is described by this structure. Used to make up new field entries. Fields for a class can have an additional "ConstantValue" attribute associated them, which the java compiler uses to represent things like static final int blah = foo;


Field Summary
protected  AttributeList attributes
           
private  AsciiConstant name
           
private  AsciiConstant type
           
 
Fields inherited from class org.multijava.util.classfile.Member
 
Fields inherited from interface org.multijava.util.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VOLATILE, ACCESS_FLAG_ARRAY, ACCESS_FLAG_NAMES, ATT_ANCHOR, ATT_BRIDGE, ATT_CODE, ATT_CONSTANTVALUE, ATT_DEPRECATED, ATT_DISPATCHER, ATT_EXCEPTIONS, ATT_GENERIC, ATT_GENERIC_FUNCTIONS, ATT_INNERCLASSES, ATT_LINENUMBERTABLE, ATT_LOCALVARIABLETABLE, ATT_MM_BODY, ATT_REDIRECTOR, ATT_RMJ_GLUE, ATT_RMJ_SIGNATURE, ATT_RUNTIME_VISIBLE_ANNOTATIONS, ATT_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS, ATT_SIGNATURE, ATT_SOURCEFILE, ATT_SYNTHETIC, ATT_UNIVERSE_FIELD, ATT_UNIVERSE_METHOD, ATT_UNIVERSE_VERSION, CST_CLASS, CST_DOUBLE, CST_FIELD, CST_FLOAT, CST_INTEGER, CST_INTERFACEMETHOD, CST_LONG, CST_METHOD, CST_NAMEANDTYPE, CST_STRING, CST_UTF8, ENV_DEBUG_MODE, ENV_USE_CACHE, JAVA_MAGIC, JAVA_MAJOR, JAVA_MINOR, MAX_CODE_PER_METHOD, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_dup_x1, opc_dup_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc2_w, opc_ldc_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, POO_ASCII_CONSTANT, POO_CLASS_CONSTANT, POO_DOUBLE_CONSTANT, POO_FLOAT_CONSTANT, POO_INTEGER_CONSTANT, POO_LONG_CONSTANT, POO_NAT_CONSTANT, POO_REF_CONSTANT, POO_STRING_CONSTANT, TYP_ADDRESS, TYP_DOUBLE, TYP_FLOAT, TYP_INT, TYP_LONG, TYP_REFERENCE, TYP_VOID
 
Constructor Summary
FieldInfo(DataInput in, ConstantPool cp)
          Constructs a field entry from a class file stream
FieldInfo(short modifiers, String name, String type, String generictype, Object value, boolean deprecated, boolean synthetic)
          Constructs a field entry
 
Method Summary
 void addAttribute(Attribute attr)
          Adds the given attribute attr to the attribute list of this field.
 Object getConstantValue()
          Returns the value of the this field
 String getGenericSignature()
           
 String getName()
          Returns the name of the this field
 String getSignature()
          Returns the type of the this field
 void getSignature(String type)
          Returns the type of the this field
 CUniverseTypeAnnotation getUniverseAnnotation()
          Returns this field's universe annotation, or null if no annotation is present.
 boolean isDeprecated()
          Returns true if the field is deprecated
 boolean isSynthetic()
          Returns true if the field is synthetic
(package private)  void resolveConstants(ConstantPool cp)
          Insert or check location of constant value on constant pool
 void setConstantValue(Object value)
          Sets the value of the this field
 void setDeprecated(boolean deprecated)
          Sets the deprecated attribute of this field
 void setGenericSignature(String str)
           
 void setName(String name)
          Sets the name of the this field
 void setSynthetic(boolean synthetic)
          Returns true if the field is synthetic
(package private)  void write(ConstantPool cp, DataOutput out)
          Write this class into the the file (out) getting data position from the constant pool
 
Methods inherited from class org.multijava.util.classfile.Member
compareTo, equals, getModifiers, hashCode, setModifiers, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

name

private AsciiConstant name

type

private AsciiConstant type

attributes

protected AttributeList attributes
Constructor Detail

FieldInfo

public FieldInfo(short modifiers,
                 String name,
                 String type,
                 String generictype,
                 Object value,
                 boolean deprecated,
                 boolean synthetic)
Constructs a field entry

Parameters:
modifiers - access permission to and properties of the field
name - the name of the field
type - the type signature
value - the value of a constant field that must be (explicitly or implicitly) static
deprecated - is this field deprecated ?
synthetic - is this field synthesized by the compiler ?

FieldInfo

public FieldInfo(DataInput in,
                 ConstantPool cp)
          throws IOException,
                 ClassFileFormatException
Constructs a field entry from a class file stream

Parameters:
in - the stream to read from
cp - the constant pool
Throws:
IOException - an io problem has occured
ClassFileFormatException - attempt to write a bad classfile info
Method Detail

getName

public String getName()
Returns the name of the this field


getGenericSignature

public String getGenericSignature()

setGenericSignature

public void setGenericSignature(String str)

setName

public void setName(String name)
Sets the name of the this field


getSignature

public String getSignature()
Returns the type of the this field


getSignature

public void getSignature(String type)
Returns the type of the this field


getConstantValue

public Object getConstantValue()
Returns the value of the this field


setConstantValue

public void setConstantValue(Object value)
Sets the value of the this field


isDeprecated

public boolean isDeprecated()
Returns true if the field is deprecated


setDeprecated

public void setDeprecated(boolean deprecated)
Sets the deprecated attribute of this field


isSynthetic

public boolean isSynthetic()
Returns true if the field is synthetic


setSynthetic

public void setSynthetic(boolean synthetic)
Returns true if the field is synthetic


getUniverseAnnotation

public CUniverseTypeAnnotation getUniverseAnnotation()
Returns this field's universe annotation, or null if no annotation is present. By AHS.


addAttribute

public void addAttribute(Attribute attr)
Adds the given attribute attr to the attribute list of this field.


resolveConstants

void resolveConstants(ConstantPool cp)
                throws ClassFileFormatException
Insert or check location of constant value on constant pool

Parameters:
cp - the constant pool for this class
Throws:
ClassFileFormatException

write

void write(ConstantPool cp,
           DataOutput out)
     throws IOException,
            ClassFileFormatException
Write this class into the the file (out) getting data position from the constant pool

Parameters:
cp - the constant pool that contain all data
out - the file where to write this object info
Throws:
IOException - an io problem has occured
ClassFileFormatException - attempt to write a bad classfile info

JML

JML is Copyright (C) 1998-2002 by Iowa State University and is distributed under the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This release depends on code from the MultiJava project and is based in part on the Kopi project Copyright (C) 1990-99 DMS Decision Management Systems Ges.m.b.H.