001package serp.bytecode.lowlevel;
002
003import java.io.*;
004
005import serp.bytecode.visitor.*;
006
007/**
008 * A constant float value in the constant pool.
009 *
010 * @author Abe White
011 */
012public 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}