package tc.oc.pgm.xml.parser;
import tc.oc.pgm.xml.InvalidXMLException;
import tc.oc.pgm.xml.Node;
public class PercentageParser extends PrimitiveParser<Double> {
@Override
public String readableTypeName() {
return "percentage";
}
@Override
protected Double parseInternal(Node node, String text) throws FormatException, InvalidXMLException {
try {
final double n = Double.parseDouble(text.replace("%", "").trim()) / 100D;
if(n < 0 || n > 100) {
throw new InvalidXMLException("Percentage must be between 0 and 100", node);
}
return n;
} catch(NumberFormatException e) {
throw new FormatException();
}
}
}