package org.activityinfo.server.endpoint.odk;
import org.activityinfo.model.type.FieldValue;
import org.activityinfo.model.type.number.Quantity;
import org.activityinfo.model.type.number.QuantityType;
class QuantityFieldValueParser implements FieldValueParser {
final private String units;
QuantityFieldValueParser(QuantityType quantityType) {
this.units = quantityType.getUnits();
}
@Override
public FieldValue parse(String text) {
double value;
if (text == null) throw new IllegalArgumentException("Malformed Element passed to OdkFieldValueParser.parse()");
try {
value = Double.parseDouble(text);
} catch (Exception e) {
throw new IllegalArgumentException("Unparsable double in Element passed to OdkFieldValueParser.parse()", e);
}
return new Quantity(value, units);
}
}