package org.activityinfo.server.endpoint.odk; import org.activityinfo.model.type.FieldValue; import org.activityinfo.model.type.geo.GeoPoint; class GeoPointFieldValueParser implements FieldValueParser { @Override public FieldValue parse(String text) { double latitude, longitude; if (text == null) throw new IllegalArgumentException("Malformed Element passed to OdkFieldValueParser.parse()"); String coords[] = text.split("\\s+"); if (coords.length < 2) { throw new IllegalArgumentException("Insufficient doubles in Element passed to OdkFieldValueParser.parse()"); } try { latitude = Double.parseDouble(coords[0]); longitude = Double.parseDouble(coords[1]); } catch (Exception e) { throw new IllegalArgumentException("Unparsable double in Element passed to OdkFieldValueParser.parse()", e); } return new GeoPoint(latitude, longitude); } }