package fr.lyrgard.hexScape.model;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import fr.lyrgard.hexScape.message.AbstractMessage;
import fr.lyrgard.hexScape.message.json.MessageJacksonModule;
import fr.lyrgard.hexScape.model.map.Map;
public class GameRecord {
private String name;
private Map map;
private List<String> playerIds = new ArrayList<>();
private List<AbstractMessage> actions = new ArrayList<>();
@JsonIgnore
private static ObjectMapper mapper;
static {
mapper = new ObjectMapper();
mapper.registerModule(new MessageJacksonModule());
}
public static GameRecord fromJson(String string) throws JsonParseException, JsonMappingException, IOException {
return mapper.readValue(string, GameRecord.class);
}
public String toJson() throws JsonProcessingException {
return mapper.writeValueAsString(this);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public List<String> getPlayerIds() {
return playerIds;
}
public List<AbstractMessage> getActions() {
return actions;
}
}