@Override
		public boolean isValid(Object value, ConstraintValidatorContext context) {
			BeanWrapper beanWrapper = new BeanWrapperImpl(value);
			String date = (String) beanWrapper.getPropertyValue(dateProperty);
			String format = (String) beanWrapper.getPropertyValue(formatProperty);
			if (date == null || format == null) {
				return true;
			}
			SimpleDateFormat sdf = null;
			try {
				sdf = new SimpleDateFormat(format);
				sdf.setLenient(false);
			}
			catch (IllegalArgumentException e) {
				// this is ignored, as an illegal format should be reported by @DateFormat
				return true;
			}

			try {
				sdf.parse(date);
			}
			catch (ParseException e) {

				if (DEFAULT_MESSAGE.equals(this.message)) {
					context.disableDefaultConstraintViolation();
					String message = String.format(
							"Can not be parsed as a date using the format specified in '%s', that is, '%s'",
							formatProperty, format);
					context.buildConstraintViolationWithTemplate(message).addPropertyNode(dateProperty).addConstraintViolation();
				}
				return false;
			}
			return true;
		}
Defines several {@link DateWithCustomFormat} annotations on the same element.

@see DateWithCustomFormat
spring-xd-module-spi/src/main/java/org/springframework/xd/module/options/validation/DateWithCustomFormat.java