SinglePrecisionFloatEncoder.java

package co.nstant.in.cbor.encoder;

import java.io.OutputStream;

import co.nstant.in.cbor.CborEncoder;
import co.nstant.in.cbor.CborException;
import co.nstant.in.cbor.model.SinglePrecisionFloat;

public class SinglePrecisionFloatEncoder extends AbstractEncoder<SinglePrecisionFloat> {

	public SinglePrecisionFloatEncoder(CborEncoder encoder, OutputStream outputStream) {
		super(encoder, outputStream);
	}

	@Override
	public void encode(SinglePrecisionFloat dataItem) throws CborException {
		write((7 << 5) | 26);
		int bits = Float.floatToRawIntBits(dataItem.getValue());
		write((bits >> 24) & 0xFF);
		write((bits >> 16) & 0xFF);
		write((bits >> 8) & 0xFF);
		write((bits >> 0) & 0xFF);
	}

}