Package gnu.bytecode
Class Attribute
java.lang.Object
gnu.bytecode.Attribute
- Direct Known Subclasses:
AnnotationDefaultAttr
,CodeAttr
,ConstantValueAttr
,EnclosingMethodAttr
,ExceptionsAttr
,InnerClassesAttr
,LineNumbersAttr
,LocalVarsAttr
,MiscAttr
,RuntimeAnnotationsAttr
,SignatureAttr
,SourceDebugExtAttr
,SourceFileAttr
Represents an Attribute of an AttrContainer.
Various sub-classses are used for standard attributes, or you can use MiscAttr for a generic attribute.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addToFrontOf
(AttrContainer container) Add this to (the front of) of the specified attribute container.static void
assignConstants
(AttrContainer container, ClassType cl) Add any needed constant pool entries for all attributes in a container.void
Add any needed constant pool entries for this Attribute.static int
count
(AttrContainer container) static Attribute
get
(AttrContainer container, String name) Find an Attribute by name, in an attribute cointainer.final AttrContainer
Return the Attribute container that contains this Attribute.abstract int
Return the length of the attribute in bytes.static int
getLengthAll
(AttrContainer container) Return the length of all the attributes (with headers) in bytes.final String
getName()
final int
final Attribute
getNext()
Get the next Attribute belonging to getContainer().final boolean
Returns true if this attribute should be skipped on output.void
print
(ClassTypeWriter dst) final void
setContainer
(AttrContainer container) final void
final void
setNameIndex
(int index) final void
Set the next Attribute in the chain belonging to getContainer().final void
Cause this attributed to be skipped on output.final void
setSkipped
(boolean skip) Iff skip, cause this attributed to be skipped on output.abstract void
write
(DataOutputStream dstr) Write out the contents of the Attribute.static void
writeAll
(AttrContainer container, DataOutputStream dstr)
-
Constructor Details
-
Attribute
Create a new Attribute.- Parameters:
name
- - an interned String that names the Attribute.
-
-
Method Details
-
getContainer
Return the Attribute container that contains this Attribute. -
setContainer
-
getNext
Get the next Attribute belonging to getContainer(). -
setNext
Set the next Attribute in the chain belonging to getContainer(). -
getConstants
-
addToFrontOf
Add this to (the front of) of the specified attribute container. -
isSkipped
public final boolean isSkipped()Returns true if this attribute should be skipped on output. -
setSkipped
public final void setSkipped(boolean skip) Iff skip, cause this attributed to be skipped on output. -
setSkipped
public final void setSkipped()Cause this attributed to be skipped on output. -
getName
-
setName
-
getNameIndex
public final int getNameIndex() -
setNameIndex
public final void setNameIndex(int index) -
get
Find an Attribute by name, in an attribute cointainer.- Parameters:
container
- the attribute container to searchname
- the (interned) name of the attribute we are seeking- Returns:
- the matching Attribute, or null if the search failed.
-
assignConstants
Add any needed constant pool entries for this Attribute. Overridden by sub-classes. Do any other cleanup needed before writing out a .class file. -
assignConstants
Add any needed constant pool entries for all attributes in a container. Do any other cleanup needed before writing out a .class file. -
getLength
public abstract int getLength()Return the length of the attribute in bytes. Does not include the 6-byte header (for the name_index and the length). -
getLengthAll
Return the length of all the attributes (with headers) in bytes. -
write
Write out the contents of the Attribute. Does not write the 6-byte attribute header.- Throws:
IOException
-
count
-
writeAll
- Throws:
IOException
-
print
-