public Measure(String value, Unit<Length> defaultUnit) { setDefaultUnit(defaultUnit); processLiteralExpression(value, defaultUnit); }
public Measure(Expression unscaled, Unit<Length> defaultUnit) { this.expression = unscaled; setDefaultUnit(defaultUnit); this.uom = defaultUnit; if (unscaled instanceof Literal) { processLiteralExpression((Literal) unscaled, defaultUnit); } else { // see if we can still optimize PropertyIsNull test = ff.isNull(unscaled); Filter simplified = (Filter) test.accept(new SimplifyingFilterVisitor(), null); if (simplified == Filter.INCLUDE) { // special case, the expression was nil to start with this.expression = NilExpression.NIL; this.uom = defaultUnit; } else if (simplified instanceof PropertyIsNull) { PropertyIsNull pin = (PropertyIsNull) simplified; Expression se = pin.getExpression(); if (se instanceof Literal) { processLiteralExpression((Literal) se, defaultUnit); } else { this.expression = se; this.uom = defaultUnit; } } } }