org.apache.bcel.classfile

## Class Unknown

- java.lang.Object
- - org.apache.bcel.classfile.Attribute
  - - org.apache.bcel.classfile.Unknown

- All Implemented Interfaces:
    Cloneable, Node

      public final class Unknown
      extends Attribute

  This class represents a reference to an unknown (i.e., application-specific) attribute of a class. It is instantiated from the `Attribute.readAttribute(java.io.DataInput, ConstantPool)` method. Applications that need to read in application-specific attributes should create an `UnknownAttributeReader` implementation and attach it via `Attribute.addAttributeReader(String, UnknownAttributeReader)`.
  See Also:
    `Attribute`, `UnknownAttributeReader`

- - ### Field Summary

    - ### Fields inherited from class org.apache.bcel.classfile.Attribute

      `constant_pool, EMPTY_ARRAY, length, name_index, tag`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Unknown(int nameIndex, int length, byte[] bytes, ConstantPool constantPool)` Constructs a new instance for a non-standard attribute.
    `Unknown(Unknown unknown)` Constructs a new instance from another instance.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `accept(Visitor v)` Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class.
    `Attribute` | `copy(ConstantPool constantPool)`
    `void` | `dump(DataOutputStream file)` Dumps unknown bytes to file stream.
    `byte[]` | `getBytes()`
    `String` | `getName()`
    `void` | `setBytes(byte[] bytes)`
    `String` | `toString()`

    - ### Methods inherited from class org.apache.bcel.classfile.Attribute

      `addAttributeReader, addAttributeReader, clone, getConstantPool, getLength, getNameIndex, getTag, println, readAttribute, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndex`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### 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

          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.
      Specified by:
        `accept` in interface `Node`
      Specified by:
        `accept` in class `Attribute`
      Parameters:
        `v` - Visitor object

    - #### copy

          public Attribute copy(ConstantPool constantPool)

      Specified by:
        `copy` in class `Attribute`
      Parameters:
        `constantPool` - constant pool to save.
      Returns:
        deep copy of this attribute

    - #### dump

          public void dump(DataOutputStream file)
                    throws IOException

      Dumps unknown bytes to file stream.
      Overrides:
        `dump` in class `Attribute`
      Parameters:
        `file` - Output file stream
      Throws:
        `IOException` - if an I/O error occurs.

    - #### getBytes

          public byte[] getBytes()

      Returns:
        data bytes.

    - #### getName

          public String getName()

      Overrides:
        `getName` in class `Attribute`
      Returns:
        name of attribute.

    - #### setBytes

          public void setBytes(byte[] bytes)

      Parameters:
        `bytes` - the bytes to set

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Attribute`
      Returns:
        String representation.

Copyright © 2004–2022 The Apache Software Foundation. All rights reserved.