(no commit message)
authorerik <erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Thu, 22 Jul 2010 11:18:37 +0000 (11:18 +0000)
committererik <erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Thu, 22 Jul 2010 11:18:37 +0000 (11:18 +0000)
support/general/src/main/java/org/wamblee/conditions/PropertyRegexCondition.java

index b5ce9c5d23128f258abdb014a5fa6c2624488909..3b9cfef4da5b7f3aba74c3d7fb8a2169e4f19111 100644 (file)
  */ 
 package org.wamblee.conditions;
 
-import org.apache.commons.beanutils.PropertyUtils;
-
 import java.lang.reflect.InvocationTargetException;
-
+import java.lang.reflect.Method;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -71,7 +69,9 @@ public class PropertyRegexCondition<T> implements Condition<T> {
      */
     public boolean matches(T aObject) {
         try {
-            String value = PropertyUtils.getProperty(aObject, property) + "";
+            String readerName = "get" + property.substring(0, 1).toUpperCase() + property.substring(1);
+            Method reader = aObject.getClass().getMethod(readerName);
+            String value = reader.invoke(aObject) + "";
 
             if (tolower) {
                 value = value.toLowerCase();
@@ -80,12 +80,12 @@ public class PropertyRegexCondition<T> implements Condition<T> {
             Matcher matcher = regex.matcher(value);
 
             return matcher.matches();
+        } catch (NoSuchMethodException e) {
+            throw new RuntimeException(e.getMessage(), e);
         } catch (IllegalAccessException e) {
             throw new RuntimeException(e.getMessage(), e);
         } catch (InvocationTargetException e) {
             throw new RuntimeException(e.getMessage(), e);
-        } catch (NoSuchMethodException e) {
-            throw new RuntimeException(e.getMessage(), e);
-        }
+        } 
     }
 }