/** * @param object The object to invoke the method on. * @param checkMethodName The name of the check method which returns a boolean value. * @param expectedValue The expected value to be returned for the check to be enabled. */ public PropertyEnableCheck( final Object object, final String checkMethodName, final Object expectedValue, ErrorHandler errorHandler) { Class clazz = object.getClass(); this.object = object; this.expectedValue = expectedValue; this.errorHandler = errorHandler; try { method = clazz.getMethod(checkMethodName, new Class[] {}); } catch (Throwable e) { errorHandler.handleThrowable(e); } }
public String check(JComponent component) { try { Object result = method.invoke(object, new Object[0]); if (result == expectedValue) { return getResult(true); } else if (result == null) { return getResult(false); } else if (expectedValue == null) { return getResult(false); } else if (result.equals(expectedValue)) { return getResult(true); } else { return getResult(false); } } catch (Throwable e) { errorHandler.handleThrowable(e); return e.getMessage(); } }
public void report(Exception exception) { errorHandler.handleThrowable(exception); }