import org.apache.commons.beanutils.MethodUtils;
import org.apache.commons.beanutils.PropertyUtils;
-/**
- * Class to work with expressions. Will be gradually phased out and replaced
- * with {@link mir.util.expressions.ExpressionParser}
- */
public class ParameterExpander {
final static String NODE_SEPARATOR = ".";
final static char STRING_ESCAPE_CHARACTER = '\\';
}
private int interpretAsInteger(Object aValue) {
- if (aValue instanceof Integer)
+ if (aValue instanceof Integer) {
return ((Integer) aValue).intValue();
-
- if (aValue instanceof String) {
- try {
- return Integer.parseInt((String) aValue);
- }
- catch (Throwable t) {
- }
}
- throw new RuntimeException("Not an integer");
+ try {
+ return Integer.parseInt(aValue.toString());
+ }
+ catch (NumberFormatException t) {
+ throw new RuntimeException("Not an integer");
+ }
}
private String interpretAsString(Object aValue) {
if (aToken instanceof ConcatenateToken)
return interpretAsString(aValue1) + interpretAsString(aValue2);
- if (aToken instanceof LessThanOrEqualsToken)
+ if (aToken instanceof LessThanOrEqualsToken) {
return new Boolean(interpretAsInteger(aValue1) <= interpretAsInteger(aValue2));
- if (aToken instanceof LessThanToken)
+ }
+ if (aToken instanceof LessThanToken) {
return new Boolean(interpretAsInteger(aValue1) < interpretAsInteger(aValue2));
- if (aToken instanceof GreaterThanOrEqualsToken)
+ }
+ if (aToken instanceof GreaterThanOrEqualsToken) {
return new Boolean(interpretAsInteger(aValue1) >= interpretAsInteger(aValue2));
- if (aToken instanceof GreaterThanToken)
+ }
+ if (aToken instanceof GreaterThanToken) {
return new Boolean(interpretAsInteger(aValue1) > interpretAsInteger(aValue2));
+ }
throw new RuntimeException("Internal error: unknown binary operator: " + aToken.getClass().getName());
}