001 package serp.bytecode.lowlevel;
002
003 import java.io.*;
004
005 import serp.bytecode.visitor.*;
006
007 /**
008 * A constant float value in the constant pool.
009 *
010 * @author Abe White
011 */
012 public class FloatEntry extends Entry implements ConstantEntry {
013 private float _value = 0.0F;
014
015 /**
016 * Default constructor.
017 */
018 public FloatEntry() {
019 }
020
021 /**
022 * Constructor.
023 *
024 * @param value the constant float value of this entry
025 */
026 public FloatEntry(float value) {
027 _value = value;
028 }
029
030 public int getType() {
031 return Entry.FLOAT;
032 }
033
034 /**
035 * Return the value of this constant.
036 */
037 public float getValue() {
038 return _value;
039 }
040
041 /**
042 * Set the value of this constant.
043 */
044 public void setValue(float value) {
045 Object key = beforeModify();
046 _value = value;
047 afterModify(key);
048 }
049
050 public Object getConstant() {
051 return new Float(getValue());
052 }
053
054 public void setConstant(Object value) {
055 setValue(((Number) value).floatValue());
056 }
057
058 public void acceptVisit(BCVisitor visit) {
059 visit.enterFloatEntry(this);
060 visit.exitFloatEntry(this);
061 }
062
063 void readData(DataInput in) throws IOException {
064 _value = in.readFloat();
065 }
066
067 void writeData(DataOutput out) throws IOException {
068 out.writeFloat(_value);
069 }
070 }