KickJava   Java API By Example, From Geeks To Geeks.

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


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  * Integer constant value.
23  *
24  * @author <a HREF="mailto:bill@jboss.org">Bill Burke</a>
25  * @author Shigeru Chiba
26  */

27 public class IntegerMemberValue extends MemberValue {
28     int valueIndex;
29
30     /**
31      * Constructs an int 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_Integer_info structure.
35      */

36     public IntegerMemberValue(int index, ConstPool cp) {
37         super('I', cp);
38         this.valueIndex = index;
39     }
40
41     /**
42      * Constructs an int constant value.
43      * Note that this constructor receives <b>the initial value
44      * as the second parameter</b>
45      * unlike the corresponding constructors in the sibling classes.
46      * This is for making a difference from the constructor that receives
47      * an index into the constant pool table as the first parameter.
48      * Note that the index is also int type.
49      *
50      * @param value the initial value.
51      */

52     public IntegerMemberValue(ConstPool cp, int value) {
53         super('I', cp);
54         setValue(value);
55     }
56
57     /**
58      * Constructs an int constant value. The initial value is 0.
59      */

60     public IntegerMemberValue(ConstPool cp) {
61         super('I', cp);
62         setValue(0);
63     }
64
65     /**
66      * Obtains the value of the member.
67      */

68     public int getValue() {
69         return cp.getIntegerInfo(valueIndex);
70     }
71
72     /**
73      * Sets the value of the member.
74      */

75     public void setValue(int newValue) {
76         valueIndex = cp.addIntegerInfo(newValue);
77     }
78
79     /**
80      * Obtains the string representation of this object.
81      */

82     public String JavaDoc toString() {
83         return Integer.toString(getValue());
84     }
85
86     void write(AnnotationsWriter writer) throws IOException JavaDoc {
87         writer.constValueIndex(getValue());
88     }
89
90     /**
91      * Accepts a visitor.
92      */

93     public void accept(MemberValueVisitor visitor) {
94         visitor.visitIntegerMemberValue(this);
95     }
96 }
97
Popular Tags