package carpool.model.representation;
import org.json.JSONException;
import org.json.JSONObject;
import carpool.exception.validation.ValidationException;
import carpool.interfaces.PseudoRepresentation;
import carpool.interfaces.PseudoValidatable;
import carpool.model.Location;
public class DefaultLocationRepresentation implements PseudoRepresentation, PseudoValidatable{
private long id;
private long referenceId;
private Location location;
private int radius;
private String synonyms;
public DefaultLocationRepresentation(Location location, int radius, String synonyms) {
super();
this.id = -1;
this.referenceId = -1;
this.location = location;
this.radius = radius;
this.synonyms = synonyms;
}
public DefaultLocationRepresentation(long id, long referenceId, Location location, int radius, String synonyms) {
super();
this.id = id;
this.referenceId = referenceId;
this.location = location;
this.radius = radius;
this.synonyms = synonyms;
}
public long getReferenceId() {
return referenceId;
}
public void setReferenceId(long referenceId) {
this.referenceId = referenceId;
}
public Location getLocation() {
return location;
}
public void setLocation(Location location) {
this.location = location;
}
public int getRadius() {
return radius;
}
public void setRadius(int radius) {
this.radius = radius;
}
public String getSynonyms() {
return synonyms;
}
public void setSynonyms(String synonyms) {
this.synonyms = synonyms;
}
public long getId() {
return id;
}
public void setId(long id){
this.id = id;
}
public boolean equals(DefaultLocationRepresentation dlr){
return this.id==dlr.getId() && this.referenceId==dlr.getReferenceId() && this.radius == dlr.getRadius() && this.synonyms.equals(dlr.getSynonyms());
}
@Override
public boolean validate() throws ValidationException {
return true;
}
@Override
public String toString() {
return "DefaultLocationRepresentation [id=" + id + ", referenceId=" + referenceId + ", location=" + location + ", radius=" + radius + ", synonyms=" + synonyms + "]";
}
@Override
public String toSerializedString() {
return this.getId()+"-"+this.getLocation().toString()+"-"+this.getRadius()+"-"+this.getSynonyms();
}
@Override
public JSONObject toJSON() {
JSONObject jsonDefaultLocation = new JSONObject();
try {
jsonDefaultLocation.put("defaultId", this.getId());
jsonDefaultLocation.put("radius", this.getRadius());
jsonDefaultLocation.put("synonyms", this.getSynonyms());
JSONObject jsonLocation = this.getLocation().toJSON();
for (Object key : jsonLocation.keySet()){
String strKey = (String)key;
jsonDefaultLocation.put(strKey, jsonLocation.get(strKey));
}
} catch (JSONException e) {
e.printStackTrace();
}
return jsonDefaultLocation;
}
}