Package org.apache.bcel.classfile
Class Unknown
- java.lang.Object
-
- org.apache.bcel.classfile.Attribute
-
- org.apache.bcel.classfile.Unknown
-
- All Implemented Interfaces:
java.lang.Cloneable,Node
public final class Unknown extends Attribute
This class represents a reference to an unknown (that is, application-specific) attribute of a class. It is instantiated from theAttribute.readAttribute(java.io.DataInput, ConstantPool)method. Applications that need to read in application-specific attributes should create anUnknownAttributeReaderimplementation and attach it viaAttribute.addAttributeReader(String, UnknownAttributeReader).- See Also:
Attribute,UnknownAttributeReader
-
-
Field Summary
Fields Modifier and Type Field Description private byte[]bytes(package private) static intMAX_LENArbitrary to limit the maximum length of unknown attributes to avoid OOM errors.private static java.lang.StringMAX_LEN_PROPprivate java.lang.Stringname-
Fields inherited from class org.apache.bcel.classfile.Attribute
constant_pool, EMPTY_ARRAY, length, name_index, tag
-
-
Constructor Summary
Constructors Constructor Description Unknown(int nameIndex, int length, byte[] bytes, ConstantPool constantPool)Constructs a new instance for a non-standard attribute.Unknown(int nameIndex, int length, java.io.DataInput input, ConstantPool constantPool)Constructs a new instance from a DataInput.Unknown(Unknown unknown)Constructs a new instance from another instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(Visitor v)Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class.Attributecopy(ConstantPool constantPool)Creates a deep copy of this attribute.voiddump(java.io.DataOutputStream file)Dumps unknown bytes to file stream.byte[]getBytes()java.lang.StringgetName()Gets the name of attribute.voidsetBytes(byte[] bytes)java.lang.StringtoString()-
Methods inherited from class org.apache.bcel.classfile.Attribute
addAttributeReader, addAttributeReader, clone, getConstantPool, getLength, getNameIndex, getTag, println, readAttribute, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndex
-
-
-
-
Field Detail
-
MAX_LEN
static final int MAX_LEN
Arbitrary to limit the maximum length of unknown attributes to avoid OOM errors.- See Also:
- Constant Field Values
-
MAX_LEN_PROP
private static final java.lang.String MAX_LEN_PROP
- See Also:
- Constant Field Values
-
bytes
private byte[] bytes
-
name
private final java.lang.String name
-
-
Constructor Detail
-
Unknown
public Unknown(int nameIndex, int length, byte[] bytes, ConstantPool constantPool)Constructs a new instance for a non-standard attribute.- Parameters:
nameIndex- Index in constant pool.length- Content length in bytes.bytes- Attribute contents.constantPool- Array of constants.
-
Unknown
Unknown(int nameIndex, int length, java.io.DataInput input, ConstantPool constantPool) throws java.io.IOExceptionConstructs a new instance from a DataInput.The size of an Attribute unknown to the JVM specification is limited to 1 MB and is overridden with the system property
BCEL.Attribute.Unknown.max_attribute_length.- Parameters:
nameIndex- Index in constant pool.length- Content length in bytes.input- Input stream.constantPool- Array of constants.- Throws:
java.io.IOException- if an I/O error occurs.- See Also:
- Attribute
-
Unknown
public Unknown(Unknown unknown)
Constructs a new instance from another instance. Note that both objects use the same references (shallow copy). Use clone() for a physical copy.- Parameters:
unknown- Source.
-
-
Method Detail
-
accept
public void accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.
-
copy
public Attribute copy(ConstantPool constantPool)
Description copied from class:AttributeCreates a deep copy of this attribute.
-
dump
public void dump(java.io.DataOutputStream file) throws java.io.IOExceptionDumps unknown bytes to file stream.
-
getBytes
public byte[] getBytes()
- Returns:
- data bytes.
-
getName
public java.lang.String getName()
Description copied from class:AttributeGets the name of attribute.
-
setBytes
public void setBytes(byte[] bytes)
- Parameters:
bytes- the bytes to set.
-
-