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
ConstructorsModifierConstructorDescriptionprotected
CustomAttribute
(AttributeMapper<T> mapper) Constructor for subclasses to call. -
Method Summary
Modifier and TypeMethodDescriptionfinal AttributeMapper
<T> Returns theAttributeMapper
associated with this attribute.Returns the name of the attribute.toString()
Returns a string representation of the object.
-
Constructor Details
-
CustomAttribute
Constructor for subclasses to call.- Parameters:
mapper
- the attribute mapper
-
-
Method Details
-
attributeMapper
Description copied from interface:Attribute
Returns theAttributeMapper
associated with this attribute.- Specified by:
attributeMapper
in interfaceAttribute<T extends CustomAttribute<T>>
- Returns:
- the
AttributeMapper
associated 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
class
file, this method returns theUtf8Entry
indicating the attribute name in theclass
file.- Specified by:
attributeName
in interfaceAttribute<T extends CustomAttribute<T>>
- Implementation Requirements:
- The default implementation returns a
Utf8Entry
suitable for writing only, which may be unbound. Subclasses representing attributes read fromclass
files must override this method. - Returns:
- the name of the attribute
- See Also:
-
toString
-