1 package serp.bytecode.lowlevel;
2
3 import java.io.*;
4
5 import serp.bytecode.visitor.*;
6 import serp.util.*;
7
8 /***
9 * A constant int value in the constant pool.
10 *
11 * @author Abe White
12 */
13 public class IntEntry extends Entry implements ConstantEntry {
14 private int _value = -1;
15
16 /***
17 * Default constructor.
18 */
19 public IntEntry() {
20 }
21
22 /***
23 * Constructor.
24 *
25 * @param value the constant int value of this entry
26 */
27 public IntEntry(int value) {
28 _value = value;
29 }
30
31 public int getType() {
32 return Entry.INT;
33 }
34
35 /***
36 * Return the value of this constant.
37 */
38 public int getValue() {
39 return _value;
40 }
41
42 /***
43 * Set the value of this constant.
44 */
45 public void setValue(int value) {
46 Object key = beforeModify();
47 _value = value;
48 afterModify(key);
49 }
50
51 public Object getConstant() {
52 return Numbers.valueOf(getValue());
53 }
54
55 public void setConstant(Object value) {
56 setValue(((Number) value).intValue());
57 }
58
59 protected void readData(DataInput in) throws IOException {
60 _value = in.readInt();
61 }
62
63 protected void writeData(DataOutput out) throws IOException {
64 out.writeInt(_value);
65 }
66
67 public void acceptVisit(BCVisitor visit) {
68 visit.enterIntEntry(this);
69 visit.exitIntEntry(this);
70 }
71 }