public String getFormValidationId() { return delegate.getFormValidationId(); }
protected final void train_getFormValidationId(FormSupport formSupport, String validationId) { expect(formSupport.getFormValidationId()).andReturn(validationId).atLeastOnce(); }
private FieldValidator createValidator(Field field, ValidatorSpecification spec, String overrideId, Messages overrideMessages) { String validatorType = spec.getValidatorType(); assert InternalUtils.isNonBlank(validatorType); Validator validator = validators.get(validatorType); if (validator == null) throw new IllegalArgumentException(String.format("Unknown validator type '%s'. Configured validators are %s.", validatorType, InternalUtils.join(InternalUtils.sortedKeys(validators)))); // I just have this thing about always treating parameters as finals, so // we introduce a second variable to treat a mutable. String formValidationid = formSupport.getFormValidationId(); Object coercedConstraintValue = computeConstraintValue(validatorType, validator, spec.getConstraintValue(), formValidationid, overrideId, overrideMessages); MessageFormatter formatter = findMessageFormatter(formValidationid, overrideId, overrideMessages, validatorType, validator); return new FieldValidatorImpl(field, coercedConstraintValue, formatter, validator, formSupport); }
private MessageFormatter findFormatter(String overrideId, Messages overrideMessages, Translator translator) { // TAP5-228: Try to distinguish message overrides by form id and overrideId (i.e., property name) first. String translatorName = translator.getName(); String overrideKey = formSupport.getFormValidationId() + "-" + overrideId + "-" + translatorName + "-message"; if (overrideMessages.contains(overrideKey)) return overrideMessages.getFormatter(overrideKey); // Ok, look for a simpler name that omits the formId prefix. overrideKey = overrideId + "-" + translatorName + "-message"; if (overrideMessages.contains(overrideKey)) return overrideMessages.getFormatter(overrideKey); // Otherwise, use the built-in validation message appropriate to this validator. String messageKey = translator.getMessageKey(); // If no key has been specified, use translator name to create a key if(messageKey == null) { messageKey = translatorName + "-message"; } return globalMessages.getFormatter(messageKey); } }