Class CustomAttribute<T extends CustomAttribute<T>>
java.lang.Object
java.lang.classfile.CustomAttribute<T>
- Type Parameters:
T- the custom attribute type
- All Implemented Interfaces:
Attribute<T>,ClassElement,ClassFileElement,CodeElement,FieldElement,MethodElement
public abstract non-sealed class CustomAttribute<T extends CustomAttribute<T>>
extends Object
implements Attribute<T>, CodeElement, ClassElement, MethodElement, FieldElement
Models a user-defined attribute in a
class file. API models for
user-defined attributes should extend this class. A user-defined attribute
should also have an AttributeMapper defined, which will be returned
by attributeMapper(), and registered to the ClassFile.AttributeMapperOption so the user-defined attributes can be read.
User-defined attributes are currently not delivered in the traversal of a
CodeModel.
Accessor methods on user-defined attributes read from class files
may throw IllegalArgumentException if the attribute model is lazily
evaluated, and the evaluation encounters malformed class file format
for the attribute.
- Since:
- 24
- See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCustomAttribute(AttributeMapper<T> mapper) Constructor for subclasses to call. -
Method Summary
Modifier and TypeMethodDescriptionfinal AttributeMapper<T> Returns theAttributeMapperassociated with this attribute.Returns the name of the attribute.
-
Constructor Details
-
CustomAttribute
Constructor for subclasses to call.- Parameters:
mapper- the attribute mapper
-
-
Method Details
-
attributeMapper
Description copied from interface:AttributeReturns theAttributeMapperassociated with this attribute.- Specified by:
attributeMapperin interfaceAttribute<T extends CustomAttribute<T>>- Returns:
- the
AttributeMapperassociated with this attribute
-
attributeName
Returns the name of the attribute. The string value of the name is equivalent to the value ofattributeMapper().name().If this attribute is read from a
classfile, this method returns theUtf8Entryindicating the attribute name in theclassfile.- Specified by:
attributeNamein interfaceAttribute<T extends CustomAttribute<T>>- Implementation Requirements:
- The default implementation returns a
Utf8Entrysuitable for writing only, which may be unbound. Subclasses representing attributes read fromclassfiles must override this method. - Returns:
- the name of the attribute
- See Also:
-