package org.wonderdb.serialize; import org.jboss.netty.buffer.ChannelBuffer; import org.wonderdb.types.ColumnHeader; public class ColumnHeaderSerializer { private static ColumnHeaderSerializer instance = new ColumnHeaderSerializer(); private ColumnHeaderSerializer() { } public static ColumnHeaderSerializer getInstance() { return instance; } public ColumnHeader getHeader(ChannelBuffer buffer) { int extendBitMask = 0x20; int nullBitMask = 0x40; byte b = buffer.readByte(); ColumnHeader header = new ColumnHeader(); header.setExtended((b & extendBitMask) > 0 ? true : false); header.setNull((b & nullBitMask) > 0 ? true : false); return header; } public void serialize(ColumnHeader header, ChannelBuffer buffer) { byte extendBitMask = 0x20; byte nullBitMask = 0x40; byte b = 0; b = header.isExtended() ? extendBitMask : b; b = header.isNull() ? (byte) (b | nullBitMask) : b; buffer.writeByte(b); } }