/** * @author ETSI / STF462 / Alexandre Berge * @version $URL$ * $Id$ */ package org.etsi.ttcn.codec.generic; import org.etsi.ttcn.codec.CodecBuffer; import org.etsi.ttcn.codec.ICodec; import org.etsi.ttcn.codec.MainCodec; import org.etsi.common.ByteHelper; import org.etsi.ttcn.tci.FloatValue; import org.etsi.ttcn.tci.Type; import org.etsi.ttcn.tci.Value; public class Float extends ICodec { public Float(MainCodec mainCodec) { super(mainCodec); } @Override public Value decode(CodecBuffer buf, Type decodingHypothesis) { // TERFactory.getInstance().logDebug(">>> Float.decode: " + decodingHypothesis.getName()); FloatValue fv = mainCodec.getTciCDRequired().getFloat(); fv.setFloat(ByteHelper.byteArrayToFloat(buf.readBits(java.lang.Float.SIZE))); // TERFactory.getInstance().logDebug("<<< Float.decode: " + fv.getFloat()); return fv; } @Override public CodecBuffer encode(Value value) { // TERFactory.getInstance().logDebug(">>> Float.encode: " + value.getType().getName()); FloatValue fv = (FloatValue)value; // TERFactory.getInstance().logDebug("Float.encode: " + fv.getFloat()); byte[] encoded = ByteHelper.floatToByteArray(fv.getFloat()); CodecBuffer res = new CodecBuffer(); res.setBits(encoded, encoded.length * Byte.SIZE); return res; } }