KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > javassist > bytecode > annotation > StringMemberValue


1 /*
2  * Javassist, a Java-bytecode translator toolkit.
3  * Copyright (C) 2004 Bill Burke. All Rights Reserved.
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License. Alternatively, the contents of this file may be used under
8  * the terms of the GNU Lesser General Public License Version 2.1 or later.
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  */

15
16 package javassist.bytecode.annotation;
17
18 import javassist.bytecode.ConstPool;
19 import java.io.IOException JavaDoc;
20
21 /**
22  * String constant value.
23  *
24  * @author <a HREF="mailto:bill@jboss.org">Bill Burke</a>
25  * @author Shigeru Chiba
26  */

27 public class StringMemberValue extends MemberValue {
28     int valueIndex;
29
30     /**
31      * Constructs a string constant value. The initial value is specified
32      * by the constant pool entry at the given index.
33      *
34      * @param index the index of a CONSTANT_Utf8_info structure.
35      */

36     public StringMemberValue(int index, ConstPool cp) {
37         super('s', cp);
38         this.valueIndex = index;
39     }
40
41     /**
42      * Constructs a string constant value.
43      *
44      * @param str the initial value.
45      */

46     public StringMemberValue(String JavaDoc str, ConstPool cp) {
47         super('s', cp);
48         setValue(str);
49     }
50
51     /**
52      * Constructs a string constant value. The initial value is "".
53      */

54     public StringMemberValue(ConstPool cp) {
55         super('s', cp);
56         setValue("");
57     }
58
59     /**
60      * Obtains the value of the member.
61      */

62     public String JavaDoc getValue() {
63         return cp.getUtf8Info(valueIndex);
64     }
65
66     /**
67      * Sets the value of the member.
68      */

69     public void setValue(String JavaDoc newValue) {
70         valueIndex = cp.addUtf8Info(newValue);
71     }
72
73     /**
74      * Obtains the string representation of this object.
75      */

76     public String JavaDoc toString() {
77         return "\"" + getValue() + "\"";
78     }
79
80     void write(AnnotationsWriter writer) throws IOException JavaDoc {
81         writer.constValueIndex(getValue());
82     }
83
84     /**
85      * Accepts a visitor.
86      */

87     public void accept(MemberValueVisitor visitor) {
88         visitor.visitStringMemberValue(this);
89     }
90 }
91
Popular Tags