/* * @(#)SimpleValidator.java 5/19/2013 * * Copyright 2002 - 2013 JIDE Software Inc. All rights reserved. */ package jidefx.examples.decoration; import jidefx.scene.control.validation.ValidationEvent; import jidefx.scene.control.validation.ValidationObject; import jidefx.scene.control.validation.Validator; import jidefx.utils.ReflectionUtils; public class SimpleValidator implements Validator { private Object _validator; public SimpleValidator(Object validator) { _validator = validator; } @Override public ValidationEvent call(ValidationObject param) { try { Object valid = ReflectionUtils.callAny(_validator, "isValid", new Class[]{String.class}, new Object[]{param.getNewValue().toString()}); String name = _validator.getClass().getSimpleName(); int index = name.indexOf("Validator"); return Boolean.FALSE.equals(valid) ? new ValidationEvent(ValidationEvent.VALIDATION_ERROR, 0, ValidationEvent.FailBehavior.PERSIST, "Invalid " + name.substring(0, index) + "!") : ValidationEvent.OK; } catch (Exception e) { return ValidationEvent.UNKNOWN; } } }