blob: 389702379e11f8e1a03dec85d052e91f5fd2f71f [file] [log] [blame]
package edu.uci.ics.asterix.dataflow.data.nontagged.serde;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import edu.uci.ics.asterix.om.base.AInt16;
import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
public class AInt16SerializerDeserializer implements ISerializerDeserializer<AInt16> {
private static final long serialVersionUID = 1L;
public static final AInt16SerializerDeserializer INSTANCE = new AInt16SerializerDeserializer();
@Override
public AInt16 deserialize(DataInput in) throws HyracksDataException {
try {
return new AInt16(in.readShort());
} catch (IOException ioe) {
throw new HyracksDataException(ioe);
}
}
@Override
public void serialize(AInt16 instance, DataOutput out) throws HyracksDataException {
try {
out.writeShort(instance.getShortValue());
} catch (IOException ioe) {
throw new HyracksDataException(ioe);
}
}
public static short getShort(byte[] bytes, int offset) {
return (short) (((bytes[offset] & 0xff) << 8) + ((bytes[offset + 1] & 0xff) << 0));
}
public static int getUnsignedShort(byte[] bytes, int offset) {
return ((bytes[offset] & 0xff) << 8) + ((bytes[offset + 1] & 0xff) << 0);
}
}