Author: epbernard
Date: 2009-06-15 17:41:42 -0400 (Mon, 15 Jun 2009)
New Revision: 16789
Added:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/ConstraintPayload.java
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/AssertFalse.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/AssertTrue.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/DecimalMax.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/DecimalMin.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Future.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/NotNull.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Null.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Past.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Pattern.java
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Size.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/ReflectionHelperTest.java
Log:
BVAL-163 constraint payload
Added:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/ConstraintPayload.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/ConstraintPayload.java
(rev 0)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/ConstraintPayload.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -0,0 +1,15 @@
+package javax.validation;
+
+/**
+ * Payload type that can be attached to a given
+ * constraint declaration.
+ * Payloads are typically used to carry on metadata information
+ * consumed by a validation client.
+ *
+ * Use of payloads is not considered portable.
+ *
+ * @author Emmanuel Bernard
+ * @author Gerhard Petracek
+ */
+public interface ConstraintPayload {
+}
\ No newline at end of file
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/AssertFalse.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/AssertFalse.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/AssertFalse.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element must be false.
@@ -43,6 +44,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* Defines several @AssertFalse annotations on the same element
* @see javax.validation.constraints.AssertFalse
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/AssertTrue.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/AssertTrue.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/AssertTrue.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element must be true.
@@ -43,6 +44,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* Defines several @AssertTrue annotations on the same element
* @see AssertTrue
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/DecimalMax.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/DecimalMax.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/DecimalMax.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element must be a number whose value must be lower or
@@ -54,6 +55,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* The String representation of the max value according to the
* BigDecimal string representation
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/DecimalMin.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/DecimalMin.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/DecimalMin.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element must be a number whose value must be higher or
@@ -54,6 +55,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* The String representation of the min value according to the
* BigDecimal string representation
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element must be a number within accepted range
@@ -51,6 +52,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* @return maximum number of integral digits accepted for this number.
*/
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Future.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Future.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Future.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element must be a date in the future.
@@ -51,6 +52,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* Defines several @Future annotations on the same element
* @see {@link Future}
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element must be a number whose value must be lower or
@@ -53,6 +54,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* @return value the element must be lower or equal to
*/
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element must be a number whose value must be higher or
@@ -53,6 +54,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* @return value the element must be higher or equal to
*/
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/NotNull.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/NotNull.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/NotNull.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element must not be <code>null</code>.
@@ -41,6 +42,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* Defines several @NotNull annotations on the same element
* @see javax.validation.constraints.NotNull
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Null.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Null.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Null.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element must be null.
@@ -41,6 +42,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* Defines several @Null annotations on the same element
* @see javax.validation.constraints.Null
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Past.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Past.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Past.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element must be a date in the past.
@@ -51,6 +52,8 @@
Class<?>[] groups() default { };
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* Defines several @Past annotations on the same element
* @see {@link Past}
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Pattern.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Pattern.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Pattern.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated String must match the following regular expression.
@@ -61,6 +62,11 @@
Class<?>[] groups() default { };
/**
+ * @return The payload associated to the constraint
+ */
+ Class<? extends ConstraintPayload>[] payload() default {};
+
+ /**
* Possible Regexp flags
*/
public static enum Flag {
Modified:
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Size.java
===================================================================
---
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Size.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
beanvalidation/trunk/validation-api/src/main/java/javax/validation/constraints/Size.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -25,6 +25,7 @@
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import javax.validation.Constraint;
+import javax.validation.ConstraintPayload;
/**
* The annotated element size must be between the specified boundaries (included).
@@ -46,8 +47,11 @@
@Constraint(validatedBy = {})
public @interface Size {
String message() default "{javax.validation.constraints.Size.message}";
+
Class<?>[] groups() default {};
+ Class<? extends ConstraintPayload>[] payload() default {};
+
/**
* @return size the element must be higher or equal to
*/
Modified:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/ReflectionHelperTest.java
===================================================================
---
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/ReflectionHelperTest.java 2009-06-15
18:03:30 UTC (rev 16788)
+++
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/util/ReflectionHelperTest.java 2009-06-15
21:41:42 UTC (rev 16789)
@@ -28,6 +28,7 @@
import java.util.SortedMap;
import java.util.TreeSet;
import javax.validation.ValidationException;
+import javax.validation.ConstraintPayload;
import javax.validation.constraints.NotNull;
import javax.validation.groups.Default;
@@ -136,6 +137,12 @@
return new Class<?>[] { Default.class };
}
+ public Class<? extends ConstraintPayload>[] payload() {
+ @SuppressWarnings( "unchecked")
+ Class<? extends ConstraintPayload>[] classes = new Class[] { };
+ return classes;
+ }
+
public Class<? extends Annotation> annotationType() {
return this.getClass();
}