support for CAPTCHAs
[mir.git] / source / mir / util / ParameterExpander.java
index 3077611..0dbd4b3 100755 (executable)
@@ -42,10 +42,6 @@ import multex.Exc;
 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 = '\\';
@@ -810,18 +806,16 @@ public class ParameterExpander {
     }
 
     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) {
@@ -888,14 +882,18 @@ public class ParameterExpander {
       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());
     }