*/
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;
*/
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();
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);
- }
+ }
}
}