package org.activityinfo.model.type.geo;
import org.activityinfo.model.resource.Record;
import org.activityinfo.model.type.FieldType;
import org.activityinfo.model.type.FieldTypeClass;
import org.activityinfo.model.type.FieldValue;
import org.activityinfo.model.type.RecordFieldTypeClass;
/**
* A value type describing a point within the WGS84 Geographic Reference System.
*/
public class GeoPointType implements FieldType {
public static final String TYPE_ID = "GEOGRAPHIC_POINT";
public static final GeoPointType INSTANCE = new GeoPointType();
public static final FieldTypeClass TYPE_CLASS = new RecordFieldTypeClass() {
@Override
public String getId() {
return TYPE_ID;
}
@Override
public FieldType createType() {
return INSTANCE;
}
@Override
public FieldValue deserialize(Record record) {
return GeoPoint.fromRecord(record);
}
};
private GeoPointType() { }
@Override
public FieldTypeClass getTypeClass() {
return TYPE_CLASS;
}
}