Interface AttributedElement

All Superinterfaces:
ClassFileElement
All Known Subinterfaces:
ClassModel, CodeAttribute, CodeModel, FieldModel, MethodModel, RecordComponentInfo

public sealed interface AttributedElement extends ClassFileElement permits ClassModel, CodeModel, FieldModel, MethodModel, RecordComponentInfo (not exhaustive)
A ClassFileElement describing a class file structure that has attributes, such as a class file, a field, a method, a Code attribute, or a record component.
See Java Virtual Machine Specification:
4.7 Attributes
Sealed Class Hierarchy Graph:
Sealed class hierarchy graph for AttributedElementSealed class hierarchy graph for AttributedElement
Since:
24
  • Method Details

    • attributes

      List<Attribute<?>> attributes()
      Returns the attributes of this structure.
      Returns:
      the attributes of this structure
    • findAttribute

      default <T extends Attribute<T>> Optional<T> findAttribute(AttributeMapper<T> attr)
      Finds an attribute by name. This is suitable to find attributes that allow at most one instance in one structure. If this is used to find attributes that allow multiple instances in one structure, the first matching instance is returned.
      API Note:
      This can easily find an attribute and send it to another ClassFileBuilder, which is a Consumer:
      MethodModel method = ...
      MethodBuilder mb = ...
      method.findAttribute(Attributes.code()).ifPresent(mb);
      
      Type Parameters:
      T - the type of the attribute
      Parameters:
      attr - the attribute mapper
      Returns:
      the attribute, or Optional.empty() if the attribute is not present
    • findAttributes

      default <T extends Attribute<T>> List<T> findAttributes(AttributeMapper<T> attr)
      Finds attributes by name. This is suitable to find attributes that allow multiple instances in one structure.
      Type Parameters:
      T - the type of the attribute
      Parameters:
      attr - the attribute mapper
      Returns:
      the attributes, or an empty List if the attribute is not present