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
public abstract class Attribute extends Object
Represents an Attribute of an AttrContainer.Various sub-classses are used for standard attributes, or you can use MiscAttr for a generic attribute.
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddToFrontOf(AttrContainer container)Add this to (the front of) of the specified attribute container.static voidassignConstants(AttrContainer container, ClassType cl)Add any needed constant pool entries for all attributes in a container.voidassignConstants(ClassType cl)Add any needed constant pool entries for this Attribute.static intcount(AttrContainer container)static Attributeget(AttrContainer container, String name)Find an Attribute by name, in an attribute cointainer.ConstantPoolgetConstants()AttrContainergetContainer()Return the Attribute container that contains this Attribute.abstract intgetLength()Return the length of the attribute in bytes.static intgetLengthAll(AttrContainer container)Return the length of all the attributes (with headers) in bytes.StringgetName()intgetNameIndex()AttributegetNext()Get the next Attribute belonging to getContainer().booleanisSkipped()Returns true if this attribute should be skipped on output.voidprint(ClassTypeWriter dst)voidsetContainer(AttrContainer container)voidsetName(String name)voidsetNameIndex(int index)voidsetNext(Attribute next)Set the next Attribute in the chain belonging to getContainer().voidsetSkipped()Cause this attributed to be skipped on output.voidsetSkipped(boolean skip)Iff skip, cause this attributed to be skipped on output.abstract voidwrite(DataOutputStream dstr)Write out the contents of the Attribute.static voidwriteAll(AttrContainer container, DataOutputStream dstr)
-
-
-
Constructor Detail
-
Attribute
public Attribute(String name)
Create a new Attribute.- Parameters:
name- - an interned String that names the Attribute.
-
-
Method Detail
-
getContainer
public final AttrContainer getContainer()
Return the Attribute container that contains this Attribute.
-
setContainer
public final void setContainer(AttrContainer container)
-
getNext
public final Attribute getNext()
Get the next Attribute belonging to getContainer().
-
setNext
public final void setNext(Attribute next)
Set the next Attribute in the chain belonging to getContainer().
-
getConstants
public ConstantPool getConstants()
-
addToFrontOf
public void addToFrontOf(AttrContainer container)
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
public final String getName()
-
setName
public final void setName(String name)
-
getNameIndex
public final int getNameIndex()
-
setNameIndex
public final void setNameIndex(int index)
-
get
public static Attribute get(AttrContainer container, String name)
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
public void assignConstants(ClassType cl)
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
public static void assignConstants(AttrContainer container, ClassType cl)
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
public static int getLengthAll(AttrContainer container)
Return the length of all the attributes (with headers) in bytes.
-
write
public abstract void write(DataOutputStream dstr) throws IOException
Write out the contents of the Attribute. Does not write the 6-byte attribute header.- Throws:
IOException
-
count
public static int count(AttrContainer container)
-
writeAll
public static void writeAll(AttrContainer container, DataOutputStream dstr) throws IOException
- Throws:
IOException
-
print
public void print(ClassTypeWriter dst)
-
-