View Javadoc

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