public boolean isValid(String value) { errors = new ArrayList<>(); boolean success = true; for (Validator validator : validators) { if (!validator.isValid(value)) { errors.add(validator.getErrorMessage()); success = false; } } return success; }
// Validator getValidator() { return validator; } void setValidator(Validator v) { if (valuePropertyListener != null) { valueProperty.removeListener(valuePropertyListener); } validator = v; if (validator != null) { valueProperty.addListener( new ChangeListener<String>() { @Override public void changed( ObservableValue<? extends String> observable, String oldValue, String newValue) { statusProperty.set(validator.isValid()); } }); statusProperty.set(validator.isValid()); } }