[hibernate-commits] Hibernate SVN: r15631 - in validator/trunk/validation-api/src: main/java/javax/validation/spi and 7 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Dec 2 04:57:05 EST 2008


Author: epbernard
Date: 2008-12-02 04:57:05 -0500 (Tue, 02 Dec 2008)
New Revision: 15631

Added:
   validator/trunk/validation-api/src/test/java/org/
   validator/trunk/validation-api/src/test/java/org/hibernate/
   validator/trunk/validation-api/src/test/java/org/hibernate/validator/
   validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/
   validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/
   validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/
   validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraint.java
   validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/Length.java
   validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraint.java
Modified:
   validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java
   validator/trunk/validation-api/src/main/java/javax/validation/Validation.java
   validator/trunk/validation-api/src/main/java/javax/validation/Validator.java
   validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java
Log:
Typos and add first code form spec examples

Modified: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java	2008-12-02 08:17:41 UTC (rev 15630)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintDescriptor.java	2008-12-02 09:57:05 UTC (rev 15631)
@@ -51,19 +51,21 @@
 	 * Returns a map containing the annotation parameter names as keys and the
 	 * annotation parameter values as value.
 	 * If this constraint is used as part of a composed constraint, parameter
-	 * values are reflecting the overridden parameters form the main constraint.
+	 * values are reflecting the overridden parameters from the main constraint.
 	 *
-	 * @return Returns a map containing the annotation paramter names as keys and the annotation parameter values
-	 *         as value.
+	 * @return Returns a map containing the annotation paramter names as keys
+	 *         and the annotation parameter values as value.
 	 */
 	Map<String, Object> getParameters();
 
 	/**
-	 * Return a set of composing <code>ConstraintDescriptor</code>s where each descriptor describes a composing
-	 * constraint. <code>ConstraintDescriptor</code> instances of composing constraints reflect overridden
-	 * parameter values in {@link #getParameters()}  and {@link #getAnnotation()}.
+	 * Return a set of composing <code>ConstraintDescriptor</code>s where each
+	 * descriptor describes a composing constraint. <code>ConstraintDescriptor</code>
+	 * instances of composing constraints reflect overridden parameter values in
+	 * {@link #getParameters()}  and {@link #getAnnotation()}.
 	 *
-	 * @return a set of <code>ConstraintDescriptor<code> objects or an empty set in case there are no composing constraints.
+	 * @return a set of <code>ConstraintDescriptor<code> objects or an empty set
+	 *         in case there are no composing constraints.
 	 */
 	Set<ConstraintDescriptor> getComposingConstraints();
 

Modified: validator/trunk/validation-api/src/main/java/javax/validation/Validation.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/Validation.java	2008-12-02 08:17:41 UTC (rev 15630)
+++ validator/trunk/validation-api/src/main/java/javax/validation/Validation.java	2008-12-02 09:57:05 UTC (rev 15631)
@@ -38,7 +38,7 @@
  * The chosen provider is defined as followed:
  * <ul>
  * <li>if the XML configuration defines a provider, this provider is used</li>
- * <li>if the XML configuratio does not define a provider or if no XML configuration
+ * <li>if the XML configuration does not define a provider or if no XML configuration
  * is present the first provider returned by the ValidationProviderResolver
  * isntance is used.</li>
  * </ul>

Modified: validator/trunk/validation-api/src/main/java/javax/validation/Validator.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/Validator.java	2008-12-02 08:17:41 UTC (rev 15630)
+++ validator/trunk/validation-api/src/main/java/javax/validation/Validator.java	2008-12-02 09:57:05 UTC (rev 15631)
@@ -52,7 +52,7 @@
 	 *
 	 * @return constraint violations or an empty Set if none
 	 *
-	 * @throws IllegalArgumentException e if object is null
+	 * @throws IllegalArgumentException e if object is null or if propertyName is not present
 	 */
 	<T> Set<ConstraintViolation<T>> validateProperty(T object, String propertyName, String... groups);
 
@@ -68,6 +68,7 @@
 	 * for validation (default to <code>default</code>)
 	 *
 	 * @return constraint violations or an empty Set if none
+	 * @throws IllegalArgumentException e if propertyName is not present
 	 */
 	<T> Set<ConstraintViolation<T>> validateValue(Class<T> beanType, String propertyName, Object value, String... groups);
 

Modified: validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java	2008-12-02 08:17:41 UTC (rev 15630)
+++ validator/trunk/validation-api/src/main/java/javax/validation/spi/ValidationProvider.java	2008-12-02 09:57:05 UTC (rev 15631)
@@ -47,7 +47,7 @@
 	 * to build the ValidatorFactory instance.
 	 * <p/>
 	 * This method can only be called on providers returning true on <
-	 * code>#issuitable(builderType)</code>
+	 * code>#isSuitable(builderType)</code>
 	 *
 	 * @param builderClass the Builder class type
 	 * @param state bootstrap state

Added: validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraint.java
===================================================================
--- validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraint.java	                        (rev 0)
+++ validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/FineGrainedLengthConstraint.java	2008-12-02 09:57:05 UTC (rev 15631)
@@ -0,0 +1,54 @@
+package org.hibernate.validator.spec.s2.s4;
+
+import javax.validation.ConstraintContext;
+import javax.validation.Constraint;
+
+/**
+ * Check that a string length is between min and max
+ * Error messages are using either key:
+ *  - error.length.min if the min limit is reached
+ *  - error.length.max if the max limit is reached
+ */
+public class FineGrainedLengthConstraint implements Constraint<Length> {
+    private int min;
+    private int max;
+
+    /**
+     * Configure the constraint validator based on the elements
+     * specified at the time it was defined.
+     * @param constraint the constraint definition
+     */
+    public void initialize(Length constraint) {
+        min = constraint.min();
+        max = constraint.max();
+    }
+
+    /**
+     * Validate a specified value.
+     * returns false if the specified value does not conform to the definition
+     * @exception IllegalArgumentException if the object is not of type String
+     */
+    public boolean isValid(Object value, ConstraintContext constraintContext) {
+        if ( value == null ) return true;
+        if ( !( value instanceof String ) ) {
+            throw new IllegalArgumentException("Expected String type");
+        }
+        String string = (String) value;
+        int length = string.length();
+
+		//remove default error
+		constraintContext.disableDefaultError();
+
+		if (length < min) {
+			//add min specific error
+			constraintContext.addError( "{error.length.min}" );
+			return false;
+		}
+		if (length > max) {
+			//add max specific error
+			constraintContext.addError( "{error.length.max}" );
+			return false;
+		}
+		return true;
+    }
+}
\ No newline at end of file

Added: validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/Length.java
===================================================================
--- validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/Length.java	                        (rev 0)
+++ validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/Length.java	2008-12-02 09:57:05 UTC (rev 15631)
@@ -0,0 +1,22 @@
+package org.hibernate.validator.spec.s2.s4;
+
+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;
+import javax.validation.ConstraintValidator;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Target({ METHOD, FIELD, ANNOTATION_TYPE })
+ at Retention(RUNTIME)
+ at Documented
+ at ConstraintValidator(LengthConstraint.class)
+public @interface Length {
+	int min() default Integer.MIN_VALUE;
+	int max() default Integer.MAX_VALUE;
+}

Added: validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraint.java
===================================================================
--- validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraint.java	                        (rev 0)
+++ validator/trunk/validation-api/src/test/java/org/hibernate/validator/spec/s2/s4/LengthConstraint.java	2008-12-02 09:57:05 UTC (rev 15631)
@@ -0,0 +1,38 @@
+package org.hibernate.validator.spec.s2.s4;
+
+import javax.validation.ConstraintContext;
+import javax.validation.Constraint;
+
+/**
+ * Check that a string length is between min and max
+ *
+ */
+public class LengthConstraint implements Constraint<Length> {
+    private int min;
+    private int max;
+
+    /**
+     * Configure the constraint validator based on the elements
+     * specified at the time it was defined.
+     * @param constraint the constraint definition
+     */
+    public void initialize(Length constraint) {
+        min = constraint.min();
+        max = constraint.max();
+    }
+
+    /**
+     * Validate a specified value.
+     * returns false if the specified value does not conform to the definition
+     * @exception IllegalArgumentException if the object is not of type String
+     */
+    public boolean isValid(Object value, ConstraintContext constraintContext) {
+        if ( value == null ) return true;
+        if ( !( value instanceof String ) ) {
+            throw new IllegalArgumentException("Expected String type");
+        }
+        String string = (String) value;
+        int length = string.length();
+        return length >= min && length <= max;
+    }
+}




More information about the hibernate-commits mailing list