Interface AttributeMapper<A extends Attribute<A>>

Type Parameters:
A - the attribute type

public interface AttributeMapper<A extends Attribute<A>>
Bidirectional mapper between the classfile representation of an attribute and how that attribute is modeled in the API. The attribute mapper is used to parse the classfile representation into a model, and to write the model representation back to a classfile. For each standard attribute, there is a predefined attribute mapper defined in Attributes. For nonstandard attributes, clients can define their own AttributeMapper. Classes that model nonstandard attributes should extend CustomAttribute.
Since:
24
  • Method Details

    • name

      String name()
      Returns the name of the attribute.
      Returns:
      the name of the attribute
    • readAttribute

      A readAttribute(AttributedElement enclosing, ClassReader cf, int pos)
      Create an Attribute instance from a classfile.
      Parameters:
      enclosing - The class, method, field, or code attribute in which this attribute appears
      cf - The ClassReader describing the classfile to read from
      pos - The offset into the classfile at which the attribute starts
      Returns:
      the new attribute
    • writeAttribute

      void writeAttribute(BufWriter buf, A attr)
      Write an Attribute instance to a classfile.
      Parameters:
      buf - The BufWriter to which the attribute should be written
      attr - The attribute to write
    • allowMultiple

      default boolean allowMultiple()
      Returns whether this attribute may appear more than once in a given location.
      Implementation Requirements:
      The default implementation returns false
      Returns:
      whether this attribute may appear more than once in a given location
    • stability

      Returns attribute stability indicator.
      Returns:
      attribute stability indicator