package com.iambookmaster.client.beans;
import java.util.HashMap;
import com.iambookmaster.client.common.JSONBuilder;
import com.iambookmaster.client.common.JSONParser;
import com.iambookmaster.client.exceptions.JSONException;
public class NPCParams {
private static final String JSON_NPC = "a";
private static final String JSON_ROUND = "b";
private static final String JSON_FRIEND = "c";
private NPC npc;
private int round;
private boolean friend;
public NPC getNpc() {
return npc;
}
public void setNpc(NPC npc) {
this.npc = npc;
}
public int getRound() {
return round;
}
public void setRound(int round) {
this.round = round;
}
public boolean isFriend() {
return friend;
}
public void setFriend(boolean friend) {
this.friend = friend;
}
public void toJSON(JSONBuilder builder, int export) {
builder.newRow();
builder.field(JSON_NPC, npc.getId());
if (round != 0) {
builder.field(JSON_ROUND, round);
}
if (friend) {
builder.field(JSON_FRIEND, 1);
}
}
public static NPCParams fromJS(Object row, JSONParser parser, HashMap<String, AbstractParameter> parametersMap) throws JSONException {
String objectId = parser.propertyString(row, JSON_NPC);
AbstractParameter parameter = parametersMap.get(objectId);
NPCParams result = new NPCParams();
if (parameter instanceof NPC) {
//found
result.npc = (NPC)parameter;
} else {
throw new JSONException("Unknown NPC with ID="+objectId);
}
result.round = parser.propertyNoCheckInt(row, JSON_ROUND);
result.friend = parser.propertyNoCheckInt(row, JSON_FRIEND)>0;
return result;
}
public NPCParams(NPC npc) {
this.npc = npc;
}
public NPCParams() {
}
public HashMap<Parameter, Integer> getValues() {
return npc.getValues();
}
}