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 }