@Override public void serialize(Buffer buf) { short flag1 = 0; flag1 = BooleanByteWrapper.setFlag(flag1, 0, isOnSale); flag1 = BooleanByteWrapper.setFlag(flag1, 1, isSaleLocked); buf.writeUByte(flag1); buf.writeInt(houseId); buf.writeUShort(doorsOnMap.length); for (int entry : doorsOnMap) { buf.writeInt(entry); } buf.writeString(ownerName); buf.writeShort(modelId); }
@Override public void deserialize(Buffer buf) { short flag1 = buf.readUByte(); isOnSale = BooleanByteWrapper.getFlag(flag1, 0); isSaleLocked = BooleanByteWrapper.getFlag(flag1, 1); houseId = buf.readInt(); if (houseId < 0) throw new RuntimeException( "Forbidden value on houseId = " + houseId + ", it doesn't respect the following condition : houseId < 0"); int limit = buf.readUShort(); doorsOnMap = new int[limit]; for (int i = 0; i < limit; i++) { doorsOnMap[i] = buf.readInt(); } ownerName = buf.readString(); modelId = buf.readShort(); if (modelId < 0) throw new RuntimeException( "Forbidden value on modelId = " + modelId + ", it doesn't respect the following condition : modelId < 0"); }