Class FieldOrMethod

java.lang.Object
org.apache.bcel.classfile.AccessFlags
org.apache.bcel.classfile.FieldOrMethod
All Implemented Interfaces:
Serializable, Cloneable, Node
Direct Known Subclasses:
Field, Method

public abstract class FieldOrMethod extends AccessFlags implements Cloneable, Node
Abstract super class for fields and methods.
See Also:
  • Field Details

    • name_index

      protected int name_index
    • signature_index

      protected int signature_index
    • attributes_count

      protected int attributes_count
    • attributes

      protected Attribute[] attributes
    • annotationEntries

      protected AnnotationEntry[] annotationEntries
    • constant_pool

      protected ConstantPool constant_pool
  • Constructor Details

    • 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.
    • FieldOrMethod

      protected FieldOrMethod(DataInputStream file, ConstantPool constant_pool) throws IOException, ClassFormatException
      Construct object from file stream.
      Parameters:
      file - Input stream
      Throws:
      IOException
      ClassFormatException
    • FieldOrMethod

      protected FieldOrMethod(int access_flags, int name_index, int signature_index, Attribute[] attributes, ConstantPool constant_pool)
      Parameters:
      access_flags - Access rights of method
      name_index - Points to field name in constant pool
      signature_index - Points to encoded signature
      attributes - Collection of attributes
      constant_pool - Array of constants
  • Method Details

    • dump

      public final void dump(DataOutputStream file) throws IOException
      Dump object to file stream on binary format.
      Parameters:
      file - Output file stream
      Throws:
      IOException
    • getAttributes

      public final Attribute[] getAttributes()
      Returns:
      Collection of object attributes.
    • setAttributes

      public final void setAttributes(Attribute[] attributes)
      Parameters:
      attributes - Collection of object attributes.
    • getConstantPool

      public final ConstantPool getConstantPool()
      Returns:
      Constant pool used by this object.
    • setConstantPool

      public final void setConstantPool(ConstantPool constant_pool)
      Parameters:
      constant_pool - Constant pool to be used for this object.
    • getNameIndex

      public final int getNameIndex()
      Returns:
      Index in constant pool of object's name.
    • setNameIndex

      public final void setNameIndex(int name_index)
      Parameters:
      name_index - Index in constant pool of object's name.
    • getSignatureIndex

      public final int getSignatureIndex()
      Returns:
      Index in constant pool of field signature.
    • setSignatureIndex

      public final void setSignatureIndex(int signature_index)
      Parameters:
      signature_index - Index in constant pool of field signature.
    • getName

      public final String getName()
      Returns:
      Name of object, i.e., method name or field name
    • getSignature

      public final String getSignature()
      Returns:
      String representation of object's type signature (java style)
    • copy_

      protected FieldOrMethod copy_(ConstantPool _constant_pool)
      Returns:
      deep copy of this field
    • getAnnotationEntries

      public AnnotationEntry[] getAnnotationEntries()
    • addAnnotationEntry

      public void addAnnotationEntry(AnnotationEntry a)
    • getGenericSignature

      public final String getGenericSignature()
      Hunts for a signature attribute on the member and returns its contents. So where the 'regular' signature may be (Ljava/util/Vector;)V the signature attribute may in fact say 'Ljava/lang/Vectorinvalid input: '<'Ljava/lang/String>;' Coded for performance - searches for the attribute only when requested - only searches for it once.