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    }