[hibernate-commits] Hibernate SVN: r15319 - validator/trunk/validation-api/src/main/java/javax/validation/constraints.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Oct 10 16:14:23 EDT 2008


Author: epbernard
Date: 2008-10-10 16:14:22 -0400 (Fri, 10 Oct 2008)
New Revision: 15319

Added:
   validator/trunk/validation-api/src/main/java/javax/validation/constraints/AssertFalse.java
   validator/trunk/validation-api/src/main/java/javax/validation/constraints/AssertTrue.java
   validator/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java
   validator/trunk/validation-api/src/main/java/javax/validation/constraints/Future.java
   validator/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java
   validator/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java
   validator/trunk/validation-api/src/main/java/javax/validation/constraints/NotNull.java
   validator/trunk/validation-api/src/main/java/javax/validation/constraints/Null.java
   validator/trunk/validation-api/src/main/java/javax/validation/constraints/Past.java
   validator/trunk/validation-api/src/main/java/javax/validation/constraints/Size.java
Log:
BVAL-38 add built-in constraints

Added: validator/trunk/validation-api/src/main/java/javax/validation/constraints/AssertFalse.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/AssertFalse.java	                        (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/AssertFalse.java	2008-10-10 20:14:22 UTC (rev 15319)
@@ -0,0 +1,25 @@
+package javax.validation.constraints;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+
+/**
+ * The annotated element must be false.
+ * Supported types are <code>boolean</code> and <code>Boolean</code>
+ *
+ * Null elements are considered valid
+ *
+ * @author Emmanuel Bernard
+ */
+ at Target({ METHOD, FIELD, ANNOTATION_TYPE })
+ at Retention(RUNTIME)
+ at Documented
+public @interface AssertFalse {
+	String message() default "{constraint.assertFalse}";
+	String[] groups() default {};
+}
\ No newline at end of file

Added: validator/trunk/validation-api/src/main/java/javax/validation/constraints/AssertTrue.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/AssertTrue.java	                        (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/AssertTrue.java	2008-10-10 20:14:22 UTC (rev 15319)
@@ -0,0 +1,25 @@
+package javax.validation.constraints;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+
+/**
+ * The annotated element must be true.
+ * Supported types are <code>boolean</code> and <code>Boolean</code> 
+ *
+ * Null elements are considered valid
+ *
+ * @author Emmanuel Bernard
+ */
+ at Target({ METHOD, FIELD, ANNOTATION_TYPE })
+ at Retention(RUNTIME)
+ at Documented
+public @interface AssertTrue {
+	String message() default "{constraint.assertTrue}";
+	String[] groups() default {};
+}
\ No newline at end of file

Added: validator/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java	                        (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/Digits.java	2008-10-10 20:14:22 UTC (rev 15319)
@@ -0,0 +1,41 @@
+package javax.validation.constraints;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+
+/**
+ * The annotated element must be a number within accepted range
+ * Supported types are:
+ *   - <code>BigDecimal</code>
+ *   - <code>BigInteger</code>
+ *   - <code>Number</code>
+ *   - <code>String</code> (TODO should we keep it?)
+ *   - <code>short</code>, <code>int</code>, <code>long</code>, <code>float</code>, <code>double</code>
+ * TODO <code>byte</code>  
+ *
+ * Null elements are considered valid
+ *
+ * @author Emmanuel Bernard
+ */
+ at Target({ METHOD, FIELD, ANNOTATION_TYPE })
+ at Retention(RUNTIME)
+ at Documented
+public @interface Digits {
+	String message() default "{constraint.digits}";
+	String[] groups() default {};
+
+	/**
+	 * @return maximum number of integral digits accepted for this number
+	 */
+	int integer();
+
+	/**
+	 * @return maximum number of fractional digits accepted for this numbe
+	 */
+	int fraction();
+}
\ No newline at end of file

Added: validator/trunk/validation-api/src/main/java/javax/validation/constraints/Future.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/Future.java	                        (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/Future.java	2008-10-10 20:14:22 UTC (rev 15319)
@@ -0,0 +1,34 @@
+package javax.validation.constraints;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+
+/**
+ * The annotated element must be a date in the future.
+ * Now is defined as the current time according to the virtual machine
+ * The calendar used if the compared type is of type <code>Calendar</code>
+ * is the calendar based on the current timezone and the current locale.
+ *
+ * TODO what are the implications
+ *
+ * Supported types are:
+ *  - <code>java.util.Date</code>
+ *  - <code>java.util.Calendar</code>
+ *  - TODO new date/time JSR types?
+ *
+ * Null elements are considered valid
+ *
+ * @author Emmanuel Bernard
+ */
+ at Target({ METHOD, FIELD, ANNOTATION_TYPE })
+ at Retention(RUNTIME)
+ at Documented
+public @interface Future {
+	String message() default "{constraint.future}";
+	String[] groups() default {};
+}
\ No newline at end of file

Added: validator/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java	                        (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/Max.java	2008-10-10 20:14:22 UTC (rev 15319)
@@ -0,0 +1,38 @@
+package javax.validation.constraints;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+
+/**
+ * The annotated element must be a number whose value must be lower or
+ * equal than the specificed maximum.
+ *
+ * Supported types are:
+ *   - <code>BigDecimal</code>
+ *   - <code>BigInteger</code>
+ *   - <code>Number</code>
+ *   - <code>String</code> (TODO should we keep it?)
+ *   - <code>short</code>, <code>int</code>, <code>long</code>, <code>float</code>, <code>double</code>
+ * TODO <code>byte</code>
+ *
+ * Null elements are considered valid
+ *
+ * @author Emmanuel Bernard
+ */
+ at Target({ METHOD, FIELD, ANNOTATION_TYPE })
+ at Retention(RUNTIME)
+ at Documented
+public @interface Max {
+	String message() default "{constraint.max}";
+	String[] groups() default {};
+
+	/**
+	 * @return Value the element must be lower or equal to
+	 */
+	long value();
+}
\ No newline at end of file

Added: validator/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java	                        (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/Min.java	2008-10-10 20:14:22 UTC (rev 15319)
@@ -0,0 +1,38 @@
+package javax.validation.constraints;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+
+/**
+ * The annotated element must be a number whose value must be greater or
+ * equal than the specificed minimum
+ * 
+ * Supported types are:
+ *   - <code>BigDecimal</code>
+ *   - <code>BigInteger</code>
+ *   - <code>Number</code>
+ *   - <code>String</code> (TODO should we keep it?)
+ *   - <code>short</code>, <code>int</code>, <code>long</code>, <code>float</code>, <code>double</code>
+ * TODO <code>byte</code>
+ *
+ * Null elements are considered valid
+ *
+ * @author Emmanuel Bernard
+ */
+ at Target({ METHOD, FIELD, ANNOTATION_TYPE })
+ at Retention(RUNTIME)
+ at Documented
+public @interface Min {
+	String message() default "{constraint.min}";
+	String[] groups() default {};
+
+	/**
+	 * @return Value the element must be higher or equal to
+	 */
+	long value();
+}
\ No newline at end of file

Added: validator/trunk/validation-api/src/main/java/javax/validation/constraints/NotNull.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/NotNull.java	                        (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/NotNull.java	2008-10-10 20:14:22 UTC (rev 15319)
@@ -0,0 +1,23 @@
+package javax.validation.constraints;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+
+/**
+ * The annotated element must not be null.
+ * Accepts any type.
+ *
+ * @author Emmanuel Bernard
+ */
+ at Target({ METHOD, FIELD, ANNOTATION_TYPE })
+ at Retention(RUNTIME)
+ at Documented
+public @interface NotNull {
+	String message() default "{constraint.notNull}";
+	String[] groups() default {};
+}

Added: validator/trunk/validation-api/src/main/java/javax/validation/constraints/Null.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/Null.java	                        (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/Null.java	2008-10-10 20:14:22 UTC (rev 15319)
@@ -0,0 +1,24 @@
+package javax.validation.constraints;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+
+/**
+ * The annotated element must be null.
+ * Accepts any type. 
+ *
+ * @author Emmanuel Bernard
+ */
+ at Target({ METHOD, FIELD, ANNOTATION_TYPE })
+ at Retention(RUNTIME)
+ at Documented
+public @interface Null {
+	String message() default "{constraint.null}";
+	String[] groups() default {};
+}
+

Added: validator/trunk/validation-api/src/main/java/javax/validation/constraints/Past.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/Past.java	                        (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/Past.java	2008-10-10 20:14:22 UTC (rev 15319)
@@ -0,0 +1,34 @@
+package javax.validation.constraints;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+
+/**
+ * The annotated element must be a date in the past.
+ * Now is defined as the current time according to the virtual machine
+ * The calendar used if the compared type is of type <code>Calendar</code>
+ * is the calendar based on the current timezone and the current locale.
+ *
+ * TODO what are the implications
+ * 
+ * Supported types are:
+ *  - <code>java.util.Date</code>
+ *  - <code>java.util.Calendar</code>
+ *  - TODO new date/time JSR types?
+ *
+ * Null elements are considered valid
+ *
+ * @author Emmanuel Bernard
+ */
+ at Target({ METHOD, FIELD, ANNOTATION_TYPE })
+ at Retention(RUNTIME)
+ at Documented
+public @interface Past {
+	String message() default "{constraint.past}";
+	String[] groups() default {};
+}
\ No newline at end of file

Added: validator/trunk/validation-api/src/main/java/javax/validation/constraints/Size.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/constraints/Size.java	                        (rev 0)
+++ validator/trunk/validation-api/src/main/java/javax/validation/constraints/Size.java	2008-10-10 20:14:22 UTC (rev 15319)
@@ -0,0 +1,39 @@
+package javax.validation.constraints;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+
+/**
+ * The annotated element size must be between the specified boundaries (included).
+ *
+ * Supported types are:
+ *   - <code>String</code> (string length is evaludated)
+ *   - <code>Collection</code> (collection size is evaluated)
+ *   - Array (array length is evaludated)
+ *
+ * Null elements are considered valid
+ *
+ * @author Emmanuel Bernard
+ */
+ at Target({ METHOD, FIELD, ANNOTATION_TYPE })
+ at Retention(RUNTIME)
+ at Documented
+public @interface Size {
+	String message() default "{constraint.min}";
+	String[] groups() default {};
+
+	/**
+	 * @return size the element must be higher or equal to
+	 */
+	int min() default Integer.MIN_VALUE;
+
+	/**
+	 * @return size the element must be lower or equal to
+	 */
+	int max() default Integer.MAX_VALUE;
+}
\ No newline at end of file




More information about the hibernate-commits mailing list