org.apache.bcel.classfile

Class Synthetic

Implemented Interfaces:
Cloneable, Node, Serializable

public final class Synthetic
extends Attribute

This class is derived from Attribute and declares this class as `synthetic', i.e., it needs special handling. The JVM specification states "A class member that does not appear in the source code must be marked using a Synthetic attribute." It may appear in the ClassFile attribute table, a field_info table or a method_info table. This class is intended to be instantiated from the Attribute.readAttribute() method.
Version:
$Id: Synthetic.java,v 1.3 2002/03/11 16:16:35 mdahm Exp $
Author:
M. Dahm
See Also:
Attribute

Field Summary

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

constant_pool, length, name_index, tag

Constructor Summary

Synthetic(int name_index, int length, byte[] bytes, ConstantPool constant_pool)
Synthetic(Synthetic c)
Initialize from another object.

Method Summary

void
accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.
Attribute
copy(ConstantPool constant_pool)
void
dump(DataOutputStream file)
Dump source file attribute to file stream in binary format.
byte[]
getBytes()
void
setBytes(byte[] bytes)
String
toString()

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

accept, addAttributeReader, clone, copy, dump, getConstantPool, getLength, getNameIndex, getTag, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndex, toString

Constructor Details

Synthetic

public Synthetic(int name_index,
                 int length,
                 byte[] bytes,
                 ConstantPool constant_pool)
Parameters:
name_index - Index in constant pool to CONSTANT_Utf8, which should represent the string "Synthetic".
length - Content length in bytes - should be zero.
bytes - Attribute contents
constant_pool - The constant pool this attribute is associated with.

Synthetic

public Synthetic(Synthetic c)
Initialize from another object. Note that both objects use the same references (shallow copy). Use copy() for a physical copy.

Method Details

accept

public void accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitely 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
Overrides:
accept in interface Attribute
Parameters:
v - Visitor object

copy

public Attribute copy(ConstantPool constant_pool)
Overrides:
copy in interface Attribute
Returns:
deep copy of this attribute

dump

public final void dump(DataOutputStream file)
            throws IOException
Dump source file attribute to file stream in binary format.
Overrides:
dump in interface Attribute
Parameters:
file - Output file stream

getBytes

public final byte[] getBytes()
Returns:
data bytes.

setBytes

public final void setBytes(byte[] bytes)
Parameters:

toString

public final String toString()
Overrides:
toString in interface Attribute
Returns:
String representation.