(no commit message)
[utils] / support / general / src / main / java / org / wamblee / conditions / PropertyRegexCondition.java
index b5ce9c5d23128f258abdb014a5fa6c2624488909..7300e4608c37d4cd6006bdaa1de2b9604806521d 100644 (file)
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- */ 
+ */
 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;
 
 /**
- * Condition to check whether a given property of an object matches a certain regular
- * expression. The method name to use of the object passed in to 
- * {@link #matches(Object)} is obtained using the Javabean conventions. 
+ * Condition to check whether a given property of an object matches a certain
+ * regular expression. The method name to use of the object passed in to
+ * {@link #matches(Object)} is obtained using the Javabean conventions.
  * 
  * @author Erik Brakkee
  * 
@@ -71,7 +69,10 @@ 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 +81,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);
         }
     }
 }