Skip to content

Commit

Permalink
HV-1466 Use ConstraintHelper to declare the constraint
Browse files Browse the repository at this point in the history
  • Loading branch information
gsmet committed Nov 14, 2017
1 parent ee55769 commit f2a8703
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,20 @@
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.ElementType.TYPE_USE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Collection;

import javax.validation.Constraint;
import javax.validation.Payload;

import org.hibernate.validator.internal.constraintvalidators.hv.UniqueElementsValidator;
import org.hibernate.validator.constraints.UniqueElements.List;

/**
* Validates that every object in the provided {@link Collection} is unique, i.e. that we can't find 2 equal elements in
Expand All @@ -36,14 +38,25 @@
* @since 6.0.5
*/
@Documented
@Constraint(validatedBy = { })
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = UniqueElementsValidator.class)
@Retention(RUNTIME)
@Repeatable(List.class)
public @interface UniqueElements {

String message() default "{org.hibernate.validator.constraints.UniqueElements.message}";

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};

/**
* Defines several {@code @UniqueElements} annotations on the same element.
*/
@Target({ TYPE })
@Retention(RUNTIME)
@Documented
public @interface List {
UniqueElements[] value();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
import org.hibernate.validator.constraints.SafeHtml;
import org.hibernate.validator.constraints.ScriptAssert;
import org.hibernate.validator.constraints.URL;
import org.hibernate.validator.constraints.UniqueElements;
import org.hibernate.validator.constraints.br.CNPJ;
import org.hibernate.validator.constraints.br.CPF;
import org.hibernate.validator.constraints.pl.NIP;
Expand Down Expand Up @@ -262,6 +263,7 @@
import org.hibernate.validator.internal.constraintvalidators.hv.SafeHtmlValidator;
import org.hibernate.validator.internal.constraintvalidators.hv.ScriptAssertValidator;
import org.hibernate.validator.internal.constraintvalidators.hv.URLValidator;
import org.hibernate.validator.internal.constraintvalidators.hv.UniqueElementsValidator;
import org.hibernate.validator.internal.constraintvalidators.hv.br.CNPJValidator;
import org.hibernate.validator.internal.constraintvalidators.hv.br.CPFValidator;
import org.hibernate.validator.internal.constraintvalidators.hv.pl.NIPValidator;
Expand Down Expand Up @@ -667,6 +669,7 @@ public ConstraintHelper() {
putConstraint( tmpConstraints, ParameterScriptAssert.class, ParameterScriptAssertValidator.class );
putConstraint( tmpConstraints, SafeHtml.class, SafeHtmlValidator.class );
putConstraint( tmpConstraints, ScriptAssert.class, ScriptAssertValidator.class );
putConstraint( tmpConstraints, UniqueElements.class, UniqueElementsValidator.class );
putConstraint( tmpConstraints, URL.class, URLValidator.class );

this.builtinConstraints = Collections.unmodifiableMap( tmpConstraints );
Expand Down

0 comments on commit f2a8703

Please sign in to comment.