package kz.ilotterytea.frogartha.domain; import com.github.czyzby.websocket.serialization.SerializationException; import com.github.czyzby.websocket.serialization.Transferable; import com.github.czyzby.websocket.serialization.impl.Deserializer; import com.github.czyzby.websocket.serialization.impl.Serializer; public class PlayerData implements Transferable { protected int id; protected Identity identity; protected PlayerState state; public PlayerData() { } public PlayerData(int id, Identity identity, PlayerState state) { this.id = id; this.identity = identity; this.state = state; } public int getId() { return id; } public Identity getIdentity() { return identity; } public void setIdentity(Identity identity) { this.identity = identity; if (state == null) state = new PlayerState(); } public PlayerState getState() { return state; } @Override public void serialize(Serializer serializer) throws SerializationException { serializer .serializeInt(id) .serializeTransferable(identity) .serializeTransferable(state); } @Override public PlayerData deserialize(Deserializer deserializer) throws SerializationException { return new PlayerData( deserializer.deserializeInt(), deserializer.deserializeTransferable(new Identity()), deserializer.deserializeTransferable(new PlayerState()) ); } @Override public boolean equals(Object obj) { if (obj == null) return false; if (obj instanceof PlayerData) { return ((PlayerData) obj).id == id; } return false; } }