package org.traccar.model; import java.text.ParseException; import org.traccar.geofence.GeofenceCircle; import org.traccar.geofence.GeofenceGeometry; import org.traccar.geofence.GeofencePolygon; import com.fasterxml.jackson.annotation.JsonIgnore; public class Geofence extends Extensible { public static final String TYPE_GEOFENCE_CILCLE = "geofenceCircle"; public static final String TYPE_GEOFENCE_POLYGON = "geofencePolygon"; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } private String description; public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } private String area; public String getArea() { return area; } public void setArea(String area) throws ParseException { if (area.startsWith("CIRCLE")) { geometry = new GeofenceCircle(area); } else if (area.startsWith("POLYGON")) { geometry = new GeofencePolygon(area); } else { throw new ParseException("Unknown geometry type", 0); } this.area = area; } private GeofenceGeometry geometry; @JsonIgnore public GeofenceGeometry getGeometry() { return geometry; } public void setGeometry(GeofenceGeometry geometry) { area = geometry.toWKT(); this.geometry = geometry; } }