private void addPrecisionParam(String str) throws DatatypeException { if (!(base.getPrimitive() instanceof DecimalDatatype)) error("precision_not_derived_from_decimal"); int scale = convertNonNegativeInteger(str); if (scale <= 0) error("value_not_positive_integer"); base = new PrecisionRestrictDatatype(base, scale); }
private int getLength(String str) throws DatatypeException { if (base.getMeasure() == null) error("no_length"); int len = convertNonNegativeInteger(str); if (len < 0) error("value_not_non_negative_integer"); return len; }
private Object getLimit(String str, ValidationContext context) throws DatatypeException { if (base.getOrderRelation() == null) error("not_ordered"); Object value = base.createValue(str, context); if (value == null) error("invalid_limit", str); return value; }
MinExclusiveRestrictDatatype(DatatypeBase base, Object limit, String limitString) { super(base); this.order = base.getOrderRelation(); this.limit = limit; this.limitString = limitString; }