< prev index next >

src/java.xml/share/classes/com/sun/org/apache/bcel/internal/classfile/ConstantClass.java

Print this page

        

*** 19,121 **** * limitations under the License. */ package com.sun.org.apache.bcel.internal.classfile; ! import com.sun.org.apache.bcel.internal.Constants; ! import java.io.*; /** ! * This class is derived from the abstract ! * <A HREF="com.sun.org.apache.bcel.internal.classfile.Constant.html">Constant</A> class * and represents a reference to a (external) class. * ! * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ public final class ConstantClass extends Constant implements ConstantObject { private int name_index; // Identical to ConstantString except for the name /** * Initialize from another object. */ ! public ConstantClass(ConstantClass c) { this(c.getNameIndex()); } /** * Initialize instance from file data. * * @param file Input stream * @throws IOException */ ! ConstantClass(DataInputStream file) throws IOException ! { this(file.readUnsignedShort()); } /** * @param name_index Name index in constant pool. Should refer to a * ConstantUtf8. */ ! public ConstantClass(int name_index) { ! super(Constants.CONSTANT_Class); this.name_index = name_index; } /** * 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. * * @param v Visitor object */ ! public void accept(Visitor v) { v.visitConstantClass(this); } /** * Dump constant class to file stream in binary format. * * @param file Output file stream * @throws IOException */ ! public final void dump(DataOutputStream file) throws IOException ! { ! file.writeByte(tag); file.writeShort(name_index); } /** * @return Name index in constant pool of class name. */ ! public final int getNameIndex() { return name_index; } /** ! * @param name_index. */ ! public final void setNameIndex(int name_index) { this.name_index = name_index; } /** @return String object */ ! public Object getConstantValue(ConstantPool cp) { ! Constant c = cp.getConstant(name_index, Constants.CONSTANT_Utf8); ! return ((ConstantUtf8)c).getBytes(); } /** @return dereferenced string */ ! public String getBytes(ConstantPool cp) { ! return (String)getConstantValue(cp); } /** * @return String representation. */ public final String toString() { return super.toString() + "(name_index = " + name_index + ")"; } } --- 19,136 ---- * limitations under the License. */ package com.sun.org.apache.bcel.internal.classfile; + import java.io.DataInput; + import java.io.DataOutputStream; + import java.io.IOException; ! import com.sun.org.apache.bcel.internal.Const; /** ! * This class is derived from the abstract {@link Constant} * and represents a reference to a (external) class. * ! * @version $Id: ConstantClass.java 1749603 2016-06-21 20:50:19Z ggregory $ * @see Constant */ public final class ConstantClass extends Constant implements ConstantObject { + private int name_index; // Identical to ConstantString except for the name + /** * Initialize from another object. */ ! public ConstantClass(final ConstantClass c) { this(c.getNameIndex()); } + /** * Initialize instance from file data. * * @param file Input stream * @throws IOException */ ! ConstantClass(final DataInput file) throws IOException { this(file.readUnsignedShort()); } + /** * @param name_index Name index in constant pool. Should refer to a * ConstantUtf8. */ ! public ConstantClass(final int name_index) { ! super(Const.CONSTANT_Class); this.name_index = name_index; } + /** * 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. * * @param v Visitor object */ ! @Override ! public void accept( final Visitor v ) { v.visitConstantClass(this); } + /** * Dump constant class to file stream in binary format. * * @param file Output file stream * @throws IOException */ ! @Override ! public final void dump( final DataOutputStream file ) throws IOException { ! file.writeByte(super.getTag()); file.writeShort(name_index); } + /** * @return Name index in constant pool of class name. */ ! public final int getNameIndex() { ! return name_index; ! } ! /** ! * @param name_index the name index in the constant pool of this Constant Class */ ! public final void setNameIndex( final int name_index ) { this.name_index = name_index; } /** @return String object */ ! @Override ! public Object getConstantValue( final ConstantPool cp ) { ! final Constant c = cp.getConstant(name_index, Const.CONSTANT_Utf8); ! return ((ConstantUtf8) c).getBytes(); } + /** @return dereferenced string */ ! public String getBytes( final ConstantPool cp ) { ! return (String) getConstantValue(cp); } + /** * @return String representation. */ + @Override public final String toString() { return super.toString() + "(name_index = " + name_index + ")"; } }
< prev index next >