Revision 46505 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/spi/AbstractFunction.java
AbstractFunction.java | ||
---|---|---|
27 | 27 |
import org.apache.commons.lang3.BooleanUtils; |
28 | 28 |
import org.apache.commons.lang3.Range; |
29 | 29 |
import org.apache.commons.lang3.StringUtils; |
30 |
import org.apache.commons.math.exception.OutOfRangeException; |
|
30 | 31 |
import org.apache.commons.math.util.MathUtils; |
31 | 32 |
import org.gvsig.expressionevaluator.Code; |
32 | 33 |
import org.gvsig.expressionevaluator.Codes; |
34 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
|
33 | 35 |
import org.gvsig.expressionevaluator.ExpressionRuntimeException; |
34 | 36 |
import org.gvsig.expressionevaluator.Formatter; |
35 | 37 |
import org.gvsig.expressionevaluator.Function; |
... | ... | |
814 | 816 |
public String toString() { |
815 | 817 |
return this.name; |
816 | 818 |
} |
819 |
|
|
820 |
protected void checkDoubleValue(double value) { |
|
821 |
if (Double.isInfinite(value)) { |
|
822 |
throw new OutOfRangeException(value, Double.MIN_VALUE, Double.MAX_VALUE); |
|
823 |
} |
|
824 |
|
|
825 |
} |
|
826 |
|
|
827 |
protected void checkFloatValue(float value) { |
|
828 |
if (Float.isInfinite(value)) { |
|
829 |
throw new OutOfRangeException(value, Float.MIN_VALUE, Float.MAX_VALUE); |
|
830 |
} |
|
831 |
|
|
832 |
} |
|
833 |
|
|
834 |
@Override |
|
835 |
public ExpressionBuilder.Value toValue(ExpressionBuilder builder, Codes parameters) { |
|
836 |
ExpressionBuilder.Function f = builder.function(this.name()); |
|
837 |
if (parameters!= null) { |
|
838 |
for (Code parameter : parameters) { |
|
839 |
if (parameter == null) { |
|
840 |
f.parameter(null); |
|
841 |
} else { |
|
842 |
f.parameter(parameter.toValue(builder)); |
|
843 |
} |
|
844 |
} |
|
845 |
} |
|
846 |
return f; |
|
847 |
|
|
848 |
} |
|
849 |
|
|
850 |
|
|
817 | 851 |
} |
Also available in: Unified diff