FileDocCategorySizeDatePackage
FieldOrMethod.javaAPI DocJava SE 5 API7685Fri Aug 26 14:55:18 BST 2005com.sun.org.apache.bcel.internal.classfile

FieldOrMethod

public abstract class FieldOrMethod extends AccessFlags implements Node, Cloneable
Abstract super class for fields and methods.
version
$Id: FieldOrMethod.java,v 1.1.1.1 2001/10/29 20:00:01 jvanzyl Exp $
author
M. Dahm

Fields Summary
protected int
name_index
protected int
signature_index
protected int
attributes_count
protected Attribute[]
attributes
protected ConstantPool
constant_pool
Constructors Summary
FieldOrMethod()

protected FieldOrMethod(FieldOrMethod c)
Initialize from another object. Note that both objects use the same references (shallow copy). Use clone() for a physical copy.

    this(c.getAccessFlags(), c.getNameIndex(), c.getSignatureIndex(),
	 c.getAttributes(), c.getConstantPool());
  
protected FieldOrMethod(DataInputStream file, ConstantPool constant_pool)
Construct object from file stream.

param
file Input stream
throw
IOException
throw
ClassFormatError

    this(file.readUnsignedShort(), file.readUnsignedShort(),
	 file.readUnsignedShort(), null, constant_pool);

    attributes_count = file.readUnsignedShort();
    attributes       = new Attribute[attributes_count];
    for(int i=0; i < attributes_count; i++)
      attributes[i] = Attribute.readAttribute(file, constant_pool);
  
protected FieldOrMethod(int access_flags, int name_index, int signature_index, Attribute[] attributes, ConstantPool constant_pool)

param
access_flags Access rights of method
param
name_index Points to field name in constant pool
param
signature_index Points to encoded signature
param
attributes Collection of attributes
param
constant_pool Array of constants

    this.access_flags    = access_flags;
    this.name_index      = name_index;
    this.signature_index = signature_index;
    this.constant_pool   = constant_pool;

    setAttributes(attributes);
  
Methods Summary
protected com.sun.org.apache.bcel.internal.classfile.FieldOrMethodcopy_(com.sun.org.apache.bcel.internal.classfile.ConstantPool constant_pool)

return
deep copy of this field

    FieldOrMethod c = null;

    try {
      c = (FieldOrMethod)clone();
    } catch(CloneNotSupportedException e) {}

    c.constant_pool    = constant_pool;
    c.attributes       = new Attribute[attributes_count];

    for(int i=0; i < attributes_count; i++)
      c.attributes[i] = attributes[i].copy(constant_pool);

    return c;
  
public final voiddump(java.io.DataOutputStream file)
Dump object to file stream on binary format.

param
file Output file stream
throw
IOException

    file.writeShort(access_flags);
    file.writeShort(name_index);
    file.writeShort(signature_index);
    file.writeShort(attributes_count);

    for(int i=0; i < attributes_count; i++)
      attributes[i].dump(file);
  
public final com.sun.org.apache.bcel.internal.classfile.Attribute[]getAttributes()

return
Collection of object attributes.

 return attributes; 
public final com.sun.org.apache.bcel.internal.classfile.ConstantPoolgetConstantPool()

return
Constant pool used by this object.

 return constant_pool; 
public final java.lang.StringgetName()

return
Name of object, i.e., method name or field name

    ConstantUtf8  c;
    c = (ConstantUtf8)constant_pool.getConstant(name_index, 
						Constants.CONSTANT_Utf8);
    return c.getBytes();
  
public final intgetNameIndex()

return
Index in constant pool of object's name.

 return name_index; 
public final java.lang.StringgetSignature()

return
String representation of object's type signature (java style)

    ConstantUtf8  c;
    c = (ConstantUtf8)constant_pool.getConstant(signature_index,
						Constants.CONSTANT_Utf8);
    return c.getBytes();
  
public final intgetSignatureIndex()

return
Index in constant pool of field signature.

 return signature_index; 
public final voidsetAttributes(com.sun.org.apache.bcel.internal.classfile.Attribute[] attributes)

param
attributes Collection of object attributes.

    this.attributes  = attributes;
    attributes_count = (attributes == null)? 0 : attributes.length;
  
public final voidsetConstantPool(com.sun.org.apache.bcel.internal.classfile.ConstantPool constant_pool)

param
constant_pool Constant pool to be used for this object.

    this.constant_pool = constant_pool;
  
public final voidsetNameIndex(int name_index)

param
name_index Index in constant pool of object's name.

    this.name_index = name_index;
  
public final voidsetSignatureIndex(int signature_index)

param
signature_index Index in constant pool of field signature.

    this.signature_index = signature_index;