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