[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