package ch.rasc.wampspring.demo.various.snake; import java.util.List; import java.util.Map; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; @JsonInclude(Include.NON_NULL) public class SnakeMessage { private final String type; private final Object data; private final Integer id; private SnakeMessage(String type) { this(type, null, null); } private SnakeMessage(String type, Object data) { this(type, data, null); } private SnakeMessage(String type, Object data, Integer id) { this.type = type; this.data = data; this.id = id; } public static SnakeMessage createDeadMessage() { return new SnakeMessage("dead"); } public static SnakeMessage createKillMessage() { return new SnakeMessage("kill"); } public static SnakeMessage createUpdateMessage(List<Map<String, Object>> data) { return new SnakeMessage("update", data); } public static SnakeMessage createJoinMessage(List<Map<String, Object>> data) { return new SnakeMessage("join", data); } public static SnakeMessage createLeaveMessage(Integer id) { return new SnakeMessage("leave", null, id); } public String getType() { return this.type; } public Object getData() { return this.data; } public Integer getId() { return this.id; } }