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
+ */
+@Target({ METHOD, FIELD, ANNOTATION_TYPE })
+@Retention(RUNTIME)
+@Documented
+(a)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;
+ }
+}
Show replies by thread