package org.kairosdb.core.datapoints; import com.google.gson.JsonElement; import org.kairosdb.core.DataPoint; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import java.nio.ByteBuffer; import static org.kairosdb.core.DataPoint.GROUP_NUMBER; import static org.kairosdb.util.Util.packLong; import static org.kairosdb.util.Util.unpackLong; public class LongDataPointFactoryImpl implements LongDataPointFactory { public static final String DST_LONG = "kairos_long"; public static LongDataPoint getFromByteBuffer(long timestamp, DataInput buffer) throws IOException { long value = unpackLong(buffer); return new LongDataPoint(timestamp, value); } public static void writeToByteBuffer(DataOutput buffer, LongDataPoint dataPoint) throws IOException { long value = dataPoint.getValue(); packLong(value, buffer); } public static ByteBuffer writeToByteBuffer(LongDataPoint dataPoint) { ByteBuffer buffer = ByteBuffer.allocate(9); //writeToByteBuffer(buffer, dataPoint); buffer.flip(); return (buffer); } @Override public DataPoint createDataPoint(long timestamp, long value) { return ((DataPoint)new LongDataPoint(timestamp, value)); } @Override public String getDataStoreType() { return DST_LONG; } @Override public String getGroupType() { return GROUP_NUMBER; } @Override public DataPoint getDataPoint(long timestamp, JsonElement json) { long value = 0L; if (!json.isJsonNull()) value = json.getAsLong(); return new LongDataPoint(timestamp, value); } @Override public DataPoint getDataPoint(long timestamp, DataInput buffer) throws IOException { return getFromByteBuffer(timestamp, buffer); } }