KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > cojen > classfile > constant > ConstantStringInfo


1 /*
2  * Copyright 2004 Brian S O'Neill
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.cojen.classfile.constant;
18
19 import java.io.DataOutput JavaDoc;
20 import java.io.IOException JavaDoc;
21 import org.cojen.classfile.ConstantInfo;
22 import org.cojen.classfile.ConstantPool;
23
24 /**
25  * This class corresponds to the CONSTANT_String_info structure as defined in
26  * section 4.4.3 of <i>The Java Virtual Machine Specification</i>.
27  *
28  * @author Brian S O'Neill
29  */

30 public class ConstantStringInfo extends ConstantInfo {
31     private final ConstantUTFInfo mStringConstant;
32     
33     public ConstantStringInfo(ConstantUTFInfo constant) {
34         super(TAG_STRING);
35         mStringConstant = constant;
36     }
37
38     public ConstantStringInfo(ConstantPool cp, String JavaDoc str) {
39         super(TAG_STRING);
40         mStringConstant = cp.addConstantUTF(str);
41     }
42     
43     public String JavaDoc getValue() {
44         return mStringConstant.getValue();
45     }
46
47     public int hashCode() {
48         return mStringConstant.hashCode();
49     }
50     
51     public boolean equals(Object JavaDoc obj) {
52         if (this == obj) {
53             return true;
54         }
55         if (obj instanceof ConstantStringInfo) {
56             ConstantStringInfo other = (ConstantStringInfo)obj;
57             return mStringConstant.equals(other.mStringConstant);
58         }
59         return false;
60     }
61     
62     protected boolean hasPriority() {
63         return true;
64     }
65
66     public void writeTo(DataOutput JavaDoc dout) throws IOException JavaDoc {
67         super.writeTo(dout);
68         dout.writeShort(mStringConstant.getIndex());
69     }
70
71     public String JavaDoc toString() {
72         return "CONSTANT_String_info: " + getValue();
73     }
74 }
75
Popular Tags