< prev index next >

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

Print this page

        

*** 19,114 **** * 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 String object. * ! * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ public final class ConstantString extends Constant implements ConstantObject { private int string_index; // Identical to ConstantClass except for this name /** * Initialize from another object. */ ! public ConstantString(ConstantString c) { this(c.getStringIndex()); } /** * Initialize instance from file data. * * @param file Input stream * @throws IOException */ ! ConstantString(DataInputStream file) throws IOException ! { ! this((int)file.readUnsignedShort()); } /** * @param string_index Index of Constant_Utf8 in constant pool */ ! public ConstantString(int string_index) ! { ! super(Constants.CONSTANT_String); this.string_index = string_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.visitConstantString(this); } /** * Dump constant field reference 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(string_index); } /** * @return Index in constant pool of the string (ConstantUtf8). */ ! public final int getStringIndex() { return string_index; } /** ! * @param string_index. */ ! public final void setStringIndex(int string_index) { this.string_index = string_index; } /** * @return String representation. */ ! public final String toString() ! { return super.toString() + "(string_index = " + string_index + ")"; } /** @return String object */ ! public Object getConstantValue(ConstantPool cp) { ! Constant c = cp.getConstant(string_index, Constants.CONSTANT_Utf8); ! return ((ConstantUtf8)c).getBytes(); } /** @return dereferenced string */ ! public String getBytes(ConstantPool cp) { ! return (String)getConstantValue(cp); } } --- 19,135 ---- * 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 String object. * ! * @version $Id: ConstantString.java 1749603 2016-06-21 20:50:19Z ggregory $ * @see Constant */ public final class ConstantString extends Constant implements ConstantObject { + private int string_index; // Identical to ConstantClass except for this name + /** * Initialize from another object. */ ! public ConstantString(final ConstantString c) { this(c.getStringIndex()); } + + /** * Initialize instance from file data. * * @param file Input stream * @throws IOException */ ! ConstantString(final DataInput file) throws IOException { ! this(file.readUnsignedShort()); } + + /** * @param string_index Index of Constant_Utf8 in constant pool */ ! public ConstantString(final int string_index) { ! super(Const.CONSTANT_String); this.string_index = string_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.visitConstantString(this); } + + /** * Dump constant field reference 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(string_index); } + + /** * @return Index in constant pool of the string (ConstantUtf8). */ ! public final int getStringIndex() { ! return string_index; ! } ! ! /** ! * @param string_index the index into the constant of the string value */ ! public final void setStringIndex( final int string_index ) { this.string_index = string_index; } + + /** * @return String representation. */ ! @Override ! public final String toString() { return super.toString() + "(string_index = " + string_index + ")"; } + /** @return String object */ ! @Override ! public Object getConstantValue( final ConstantPool cp ) { ! final Constant c = cp.getConstant(string_index, Const.CONSTANT_Utf8); ! return ((ConstantUtf8) c).getBytes(); } + /** @return dereferenced string */ ! public String getBytes( final ConstantPool cp ) { ! return (String) getConstantValue(cp); } }
< prev index next >