Package serp.bytecode

Class Attributes

java.lang.Object
serp.bytecode.Attributes
All Implemented Interfaces:
BCEntity
Direct Known Subclasses:
Annotated, Attribute

public abstract class Attributes extends Object implements BCEntity
Abstract superclass for all bytecode entities that hold attributes.
  • Constructor Details

    • Attributes

      public Attributes()
  • Method Details

    • getAttributes

      public Attribute[] getAttributes()
      Return all the attributes owned by this entity.
      Returns:
      all owned attributes, or empty array if none
    • getAttribute

      public Attribute getAttribute(String name)
      Return the attribute with the given name. If multiple attributes share the name, which is returned is undefined.
    • getAttributes

      public Attribute[] getAttributes(String name)
      Return all attributes with the given name.
      Returns:
      the matching attributes, or empty array if none
    • setAttributes

      public void setAttributes(Attribute[] attrs)
      Set the attributes for this entity; this method is useful for importing all attributes from another entity. Set to null or empty array if none.
    • addAttribute

      public Attribute addAttribute(Attribute attr)
      Import an attribute from another entity, or make a copy of one on this entity.
    • addAttribute

      public Attribute addAttribute(String name)
      Add an attribute of the given type.
    • clearAttributes

      public void clearAttributes()
      Clear all attributes from this entity.
    • removeAttribute

      public boolean removeAttribute(String name)
      Remove all attributes with the given name from this entity.
      Returns:
      true if an attribute was removed, false otherwise
    • removeAttribute

      public boolean removeAttribute(Attribute attribute)
      Remove the given attribute. After being removed, the attribute is invalid, and the result of any operations on it are undefined.
      Returns:
      true if the attribute was removed, false otherwise
    • visitAttributes

      void visitAttributes(BCVisitor visit)
      Convenience method to be called by BCEntities when being visited by a BCVisitor; this method will allow the visitor to visit all attributes of this entity.
    • readAttributes

      void readAttributes(DataInput in) throws IOException
      Build the attribute list from the given stream. Relies on the ability of attributes to read themselves, and requires access to the constant pool, which must already by read.
      Throws:
      IOException
    • writeAttributes

      void writeAttributes(DataOutput out) throws IOException
      Writes all the owned attributes to the given stream. Relies on the ability of attributes to write themselves.
      Throws:
      IOException
    • getAttributesHolder

      abstract Collection getAttributesHolder()
      Return the collection used to hold the attributes of this entity.