diff --git a/annotation-processor/src/main/java/org/hibernate/validator/ap/ConstraintAnnotationVisitor.java b/annotation-processor/src/main/java/org/hibernate/validator/ap/ConstraintAnnotationVisitor.java index ec03ed9a28..b843ac8b89 100644 --- a/annotation-processor/src/main/java/org/hibernate/validator/ap/ConstraintAnnotationVisitor.java +++ b/annotation-processor/src/main/java/org/hibernate/validator/ap/ConstraintAnnotationVisitor.java @@ -109,6 +109,23 @@ public Void visitVariableAsField(VariableElement annotatedField, List + * Checks whether the given annotations are correctly specified at the given + * method parameter. The following checks are performed: + *

+ * + */ + @Override + public Void visitVariableAsParameter(VariableElement annotatedField, List mirrors) { + checkConstraints( annotatedField, mirrors ); + return null; + } + /** *

* Checks whether the given annotations are correctly specified at the given diff --git a/annotation-processor/src/main/java/org/hibernate/validator/ap/checks/ConstraintCheckFactory.java b/annotation-processor/src/main/java/org/hibernate/validator/ap/checks/ConstraintCheckFactory.java index 25427aa99d..0c21fda94e 100644 --- a/annotation-processor/src/main/java/org/hibernate/validator/ap/checks/ConstraintCheckFactory.java +++ b/annotation-processor/src/main/java/org/hibernate/validator/ap/checks/ConstraintCheckFactory.java @@ -34,6 +34,11 @@ public class ConstraintCheckFactory { */ private final Map fieldChecks; + /** + * Holds the checks to be executed for method parameter elements. + */ + private final Map parameterChecks; + /** * Holds the checks to be executed for method elements. */ @@ -56,6 +61,34 @@ public class ConstraintCheckFactory { public ConstraintCheckFactory(Types typeUtils, ConstraintHelper constraintHelper, AnnotationApiHelper annotationApiHelper, boolean methodConstraintsSupported) { this.constraintHelper = constraintHelper; + parameterChecks = CollectionHelper.newHashMap(); + + parameterChecks.put( + AnnotationType.CONSTRAINT_ANNOTATION, + new SingleValuedChecks( + new AnnotationParametersSizeLengthCheck( annotationApiHelper ), + new AnnotationParametersPatternCheck( annotationApiHelper ), + new AnnotationParametersScriptAssertCheck( annotationApiHelper ), + new AnnotationParametersDigitsCheck( annotationApiHelper ), + new AnnotationParametersDecimalMinMaxCheck( annotationApiHelper ) + ) + ); + parameterChecks.put( + AnnotationType.MULTI_VALUED_CONSTRAINT_ANNOTATION, + new MultiValuedChecks( + constraintHelper, + new AnnotationParametersSizeLengthCheck( annotationApiHelper ), + new AnnotationParametersPatternCheck( annotationApiHelper ), + new AnnotationParametersScriptAssertCheck( annotationApiHelper ), + new AnnotationParametersDigitsCheck( annotationApiHelper ), + new AnnotationParametersDecimalMinMaxCheck( annotationApiHelper ) + ) + ); + parameterChecks.put( + AnnotationType.GRAPH_VALIDATION_ANNOTATION, NULL_CHECKS + ); + parameterChecks.put( AnnotationType.NO_CONSTRAINT_ANNOTATION, NULL_CHECKS ); + fieldChecks = CollectionHelper.newHashMap(); fieldChecks.put( AnnotationType.CONSTRAINT_ANNOTATION, @@ -209,6 +242,8 @@ public ConstraintChecks getConstraintChecks(Element annotatedElement, Annotation AnnotationType annotationType = constraintHelper.getAnnotationType( annotation ); switch ( annotatedElement.getKind() ) { + case PARAMETER: + return parameterChecks.get( annotationType ); case FIELD: return fieldChecks.get( annotationType ); case METHOD: diff --git a/annotation-processor/src/main/java/org/hibernate/validator/ap/checks/SingleValuedChecks.java b/annotation-processor/src/main/java/org/hibernate/validator/ap/checks/SingleValuedChecks.java index dbf6c2f547..fba0b7164c 100644 --- a/annotation-processor/src/main/java/org/hibernate/validator/ap/checks/SingleValuedChecks.java +++ b/annotation-processor/src/main/java/org/hibernate/validator/ap/checks/SingleValuedChecks.java @@ -55,7 +55,10 @@ public Set execute(Element element, AnnotationMirror annot //the given element for ( ConstraintCheck oneCheck : checks ) { - if ( element.getKind() == ElementKind.FIELD ) { + if ( element.getKind() == ElementKind.PARAMETER ) { + theValue.addAll( oneCheck.checkField( (VariableElement) element, annotation ) ); + } + else if ( element.getKind() == ElementKind.FIELD ) { theValue.addAll( oneCheck.checkField( (VariableElement) element, annotation ) ); } else if ( element.getKind() == ElementKind.METHOD ) { diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/AnnotationParametersValidationTest.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/AnnotationParametersValidationTest.java index 969491008e..c441c49c44 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/AnnotationParametersValidationTest.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/AnnotationParametersValidationTest.java @@ -23,6 +23,7 @@ import org.hibernate.validator.ap.testmodel.annotationparameters.ValidScriptAssertParameters; import org.hibernate.validator.ap.testmodel.annotationparameters.ValidSizeParameters; import org.hibernate.validator.ap.util.DiagnosticExpectation; + import org.testng.annotations.Test; import javax.tools.Diagnostic.Kind; @@ -59,7 +60,14 @@ public void testInvalidSizeParameters() { new DiagnosticExpectation( Kind.ERROR, 17 ), new DiagnosticExpectation( Kind.ERROR, 20 ), new DiagnosticExpectation( Kind.ERROR, 23 ), - new DiagnosticExpectation( Kind.ERROR, 26 ) + new DiagnosticExpectation( Kind.ERROR, 26 ), + new DiagnosticExpectation( Kind.ERROR, 30 ), + new DiagnosticExpectation( Kind.ERROR, 31 ), + new DiagnosticExpectation( Kind.ERROR, 32 ), + new DiagnosticExpectation( Kind.ERROR, 38 ), + new DiagnosticExpectation( Kind.ERROR, 39 ), + new DiagnosticExpectation( Kind.ERROR, 40 ), + new DiagnosticExpectation( Kind.ERROR, 45 ) ); } @@ -87,7 +95,14 @@ public void testInvalidLengthParameters() { new DiagnosticExpectation( Kind.ERROR, 16 ), new DiagnosticExpectation( Kind.ERROR, 19 ), new DiagnosticExpectation( Kind.ERROR, 22 ), - new DiagnosticExpectation( Kind.ERROR, 25 ) + new DiagnosticExpectation( Kind.ERROR, 25 ), + new DiagnosticExpectation( Kind.ERROR, 29 ), + new DiagnosticExpectation( Kind.ERROR, 30 ), + new DiagnosticExpectation( Kind.ERROR, 31 ), + new DiagnosticExpectation( Kind.ERROR, 37 ), + new DiagnosticExpectation( Kind.ERROR, 38 ), + new DiagnosticExpectation( Kind.ERROR, 39 ), + new DiagnosticExpectation( Kind.ERROR, 44 ) ); } @@ -150,7 +165,14 @@ public void testInvalidPatternParameters() { new DiagnosticExpectation( Kind.ERROR, 16 ), new DiagnosticExpectation( Kind.ERROR, 19 ), new DiagnosticExpectation( Kind.ERROR, 22 ), - new DiagnosticExpectation( Kind.ERROR, 25 ) + new DiagnosticExpectation( Kind.ERROR, 25 ), + new DiagnosticExpectation( Kind.ERROR, 29 ), + new DiagnosticExpectation( Kind.ERROR, 30 ), + new DiagnosticExpectation( Kind.ERROR, 31 ), + new DiagnosticExpectation( Kind.ERROR, 37 ), + new DiagnosticExpectation( Kind.ERROR, 38 ), + new DiagnosticExpectation( Kind.ERROR, 39 ), + new DiagnosticExpectation( Kind.ERROR, 44 ) ); } @@ -178,7 +200,14 @@ public void testInvalidDigitsParameters() { new DiagnosticExpectation( Kind.ERROR, 17 ), new DiagnosticExpectation( Kind.ERROR, 20 ), new DiagnosticExpectation( Kind.ERROR, 23 ), - new DiagnosticExpectation( Kind.ERROR, 26 ) + new DiagnosticExpectation( Kind.ERROR, 26 ), + new DiagnosticExpectation( Kind.ERROR, 30 ), + new DiagnosticExpectation( Kind.ERROR, 31 ), + new DiagnosticExpectation( Kind.ERROR, 32 ), + new DiagnosticExpectation( Kind.ERROR, 38 ), + new DiagnosticExpectation( Kind.ERROR, 39 ), + new DiagnosticExpectation( Kind.ERROR, 40 ), + new DiagnosticExpectation( Kind.ERROR, 45 ) ); } @@ -210,7 +239,14 @@ public void testInvalidDecimalMinMaxParameters() { new DiagnosticExpectation( Kind.ERROR, 26 ), new DiagnosticExpectation( Kind.ERROR, 27 ), new DiagnosticExpectation( Kind.ERROR, 30 ), - new DiagnosticExpectation( Kind.ERROR, 31 ) + new DiagnosticExpectation( Kind.ERROR, 31 ), + new DiagnosticExpectation( Kind.ERROR, 35 ), + new DiagnosticExpectation( Kind.ERROR, 36 ), + new DiagnosticExpectation( Kind.ERROR, 37 ), + new DiagnosticExpectation( Kind.ERROR, 43 ), + new DiagnosticExpectation( Kind.ERROR, 44 ), + new DiagnosticExpectation( Kind.ERROR, 45 ), + new DiagnosticExpectation( Kind.ERROR, 50 ) ); } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidDecimalMinMaxParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidDecimalMinMaxParameters.java index eab8875313..d82dd4dd13 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidDecimalMinMaxParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidDecimalMinMaxParameters.java @@ -6,29 +6,49 @@ */ package org.hibernate.validator.ap.testmodel.annotationparameters; +import java.math.BigDecimal; import javax.validation.constraints.DecimalMax; import javax.validation.constraints.DecimalMin; -import java.math.BigDecimal; /** * @author Marko Bekhta */ public class InvalidDecimalMinMaxParameters { - @DecimalMax( value = "a" ) - @DecimalMin( value = "a" ) + @DecimalMax(value = "a") + @DecimalMin(value = "a") private BigDecimal decimal1; - @DecimalMax( value = "123.12.00" ) - @DecimalMin( value = "123.12.00" ) + @DecimalMax(value = "123.12.00") + @DecimalMin(value = "123.12.00") private BigDecimal decimal2; - @DecimalMax( value = "123E-3-3" ) - @DecimalMin( value = "123E-3-3" ) + @DecimalMax(value = "123E-3-3") + @DecimalMin(value = "123E-3-3") private BigDecimal decimal3; @DecimalMax.List({ @DecimalMax(value = "123E-3-3") }) @DecimalMin.List({ @DecimalMin(value = "123E-3-3") }) private BigDecimal decimal4; + public InvalidDecimalMinMaxParameters( + @DecimalMax(value = "a") BigDecimal decimal1, + @DecimalMax(value = "0.0.0E+7") BigDecimal decimal2, + @DecimalMax(value = "1234.5E-4-4") BigDecimal decimal3 + ) { + + } + + public void doSomething( + @DecimalMax(value = "a") BigDecimal decimal1, + @DecimalMax(value = "0.0.0E+7") BigDecimal decimal2, + @DecimalMax(value = "1234.5E-4-4") BigDecimal decimal3 + ) { + + } + + @DecimalMax(value = "1234.5E-4-4") + public BigDecimal doSomething() { + return BigDecimal.ONE; + } } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidDigitsParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidDigitsParameters.java index e864da30e3..ea3d0927dd 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidDigitsParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidDigitsParameters.java @@ -6,24 +6,44 @@ */ package org.hibernate.validator.ap.testmodel.annotationparameters; -import javax.validation.constraints.Digits; import java.math.BigDecimal; +import javax.validation.constraints.Digits; /** * @author Marko Bekhta */ public class InvalidDigitsParameters { - @Digits( integer = -3, fraction = 3 ) + @Digits(integer = -3, fraction = 3) private BigDecimal decimal1; - @Digits( integer = 5, fraction = -3 ) + @Digits(integer = 5, fraction = -3) private BigDecimal decimal2; - @Digits( integer = -5, fraction = -3 ) + @Digits(integer = -5, fraction = -3) private BigDecimal decimal3; @Digits.List({ @Digits(integer = -5, fraction = -3), @Digits(integer = 5, fraction = -3) }) private BigDecimal decimal4; + public InvalidDigitsParameters( + @Digits(integer = -1, fraction = 3) BigDecimal decimal1, + @Digits(integer = -5, fraction = -3) BigDecimal decimal2, + @Digits(integer = 3, fraction = -3) BigDecimal decimal3 + ) { + + } + + public void doSomething( + @Digits(integer = -1, fraction = 3) BigDecimal decimal1, + @Digits(integer = -5, fraction = -3) BigDecimal decimal2, + @Digits(integer = 3, fraction = -3) BigDecimal decimal3 + ) { + + } + + @Digits(integer = -1, fraction = 3) + public BigDecimal doSomething() { + return BigDecimal.ONE; + } } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidLengthParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidLengthParameters.java index 0aaa974806..2d3e1f73c8 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidLengthParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidLengthParameters.java @@ -13,16 +13,37 @@ */ public class InvalidLengthParameters { - @Length( min = -1 ) + @Length(min = -1) private String string1; - @Length( max = -10 ) + @Length(max = -10) private String string2; - @Length( min = 15, max = 10 ) + @Length(min = 15, max = 10) private String string3; @Length.List({ @Length(min = 15, max = 10), @Length(max = -10) }) private String string4; + public InvalidLengthParameters( + @Length(min = -1) String strings1, + @Length(max = -10) String strings2, + @Length(min = 15, max = 10) String strings3 + ) { + + } + + public void doSomething( + @Length(min = -1) String strings1, + @Length(max = -10) String strings2, + @Length(min = 15, max = 10) String strings3 + ) { + + } + + @Length(min = -10) + public String doSomething() { + return ""; + } + } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidPatternParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidPatternParameters.java index 55a6fc195b..ca6876c932 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidPatternParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidPatternParameters.java @@ -13,16 +13,36 @@ */ public class InvalidPatternParameters { - @Pattern( regexp = "\\" ) + @Pattern(regexp = "\\") private String strings1; - @Pattern( regexp = "[a" ) + @Pattern(regexp = "[a") private String strings2; - @Pattern( regexp = "+" ) + @Pattern(regexp = "+") private String strings3; @Pattern.List({ @Pattern(regexp = "+"), @Pattern(regexp = "[a") }) private String strings4; + public InvalidPatternParameters( + @Pattern(regexp = "\\") String strings1, + @Pattern(regexp = "[test") String strings2, + @Pattern(regexp = "+") String strings3 + ) { + + } + + public void doSomething( + @Pattern(regexp = "\\") String strings1, + @Pattern(regexp = "[test") String strings2, + @Pattern(regexp = "+") String strings3 + ) { + + } + + @Pattern(regexp = "\\") + public String doSomething() { + return ""; + } } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidScriptAssertParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidScriptAssertParameters.java index af5c7f0977..8d3b236edc 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidScriptAssertParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidScriptAssertParameters.java @@ -13,43 +13,43 @@ */ public class InvalidScriptAssertParameters { - @ScriptAssert( lang = " ", script = "some script" ) + @ScriptAssert(lang = " ", script = "some script") public static class Case1 { } - @ScriptAssert( lang = " ", script = "some script", alias = "some alias" ) + @ScriptAssert(lang = " ", script = "some script", alias = "some alias") public static class Case2 { } - @ScriptAssert( lang = " ", script = "some script", alias = " " ) + @ScriptAssert(lang = " ", script = "some script", alias = " ") public static class Case3 { } - @ScriptAssert( lang = "some lang", script = " " ) + @ScriptAssert(lang = "some lang", script = " ") public static class Case4 { } - @ScriptAssert( lang = "some lang", script = " ", alias = "some alias" ) + @ScriptAssert(lang = "some lang", script = " ", alias = "some alias") public static class Case5 { } - @ScriptAssert( lang = "some lang", script = " ", alias = " " ) + @ScriptAssert(lang = "some lang", script = " ", alias = " ") public static class Case6 { } - @ScriptAssert( lang = "some lang", script = "some script", alias = " " ) + @ScriptAssert(lang = "some lang", script = "some script", alias = " ") public static class Case7 { } - @ScriptAssert( lang = " ", script = " " ) + @ScriptAssert(lang = " ", script = " ") public static class Case8 { } - @ScriptAssert( lang = " ", script = " ", alias = "some alias" ) + @ScriptAssert(lang = " ", script = " ", alias = "some alias") public static class Case9 { } - @ScriptAssert( lang = " ", script = " ", alias = " " ) + @ScriptAssert(lang = " ", script = " ", alias = " ") public static class Case10 { } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidSizeParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidSizeParameters.java index dc1cb7990c..ee5a598134 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidSizeParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/InvalidSizeParameters.java @@ -6,24 +6,44 @@ */ package org.hibernate.validator.ap.testmodel.annotationparameters; -import javax.validation.constraints.Size; import java.util.Collection; +import javax.validation.constraints.Size; /** * @author Marko Bekhta */ public class InvalidSizeParameters { - @Size( min = -1 ) + @Size(min = -1) private Collection strings1; - @Size( max = -10 ) + @Size(max = -10) private Collection strings2; - @Size( min = 15, max = 10 ) + @Size(min = 15, max = 10) private Collection strings3; @Size.List({ @Size(min = -1), @Size(max = -15), @Size(min = 15, max = 10) }) private Collection strings4; + public InvalidSizeParameters( + @Size(min = -1) Collection strings1, + @Size(max = -10) Collection strings2, + @Size(min = 15, max = 10) Collection strings3 + ) { + + } + + public void doSomething( + @Size(min = -1) Collection strings1, + @Size(max = -10) Collection strings2, + @Size(min = 15, max = 10) Collection strings3 + ) { + + } + + @Size(min = -10) + public Collection doSomething() { + return java.util.Collections.emptyList(); + } } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidDecimalMinMaxParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidDecimalMinMaxParameters.java index b18801c1d6..23b973b336 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidDecimalMinMaxParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidDecimalMinMaxParameters.java @@ -6,73 +6,94 @@ */ package org.hibernate.validator.ap.testmodel.annotationparameters; +import java.math.BigDecimal; import javax.validation.constraints.DecimalMax; import javax.validation.constraints.DecimalMin; -import java.math.BigDecimal; /** * @author Marko Bekhta */ public class ValidDecimalMinMaxParameters { - @DecimalMax( value = "0" ) - @DecimalMin( value = "0" ) + @DecimalMax(value = "0") + @DecimalMin(value = "0") private BigDecimal decimal1; - @DecimalMax( value = "0.00" ) - @DecimalMin( value = "0.00" ) + @DecimalMax(value = "0.00") + @DecimalMin(value = "0.00") private BigDecimal decimal2; - @DecimalMax( value = "123" ) - @DecimalMin( value = "123" ) + @DecimalMax(value = "123") + @DecimalMin(value = "123") private BigDecimal decimal3; - @DecimalMax( value = "-123" ) - @DecimalMin( value = "-123" ) + @DecimalMax(value = "-123") + @DecimalMin(value = "-123") private BigDecimal decimal4; - @DecimalMax( value = "1.23E3" ) - @DecimalMin( value = "1.23E3" ) + @DecimalMax(value = "1.23E3") + @DecimalMin(value = "1.23E3") private BigDecimal decimal5; - @DecimalMax( value = "1.23E+3" ) - @DecimalMin( value = "1.23E+3" ) + @DecimalMax(value = "1.23E+3") + @DecimalMin(value = "1.23E+3") private BigDecimal decimal6; - @DecimalMax( value = "12.3E+7" ) - @DecimalMin( value = "12.3E+7" ) + @DecimalMax(value = "12.3E+7") + @DecimalMin(value = "12.3E+7") private BigDecimal decimal7; - @DecimalMax( value = "12.0" ) - @DecimalMin( value = "12.0" ) + @DecimalMax(value = "12.0") + @DecimalMin(value = "12.0") private BigDecimal decimal8; - @DecimalMax( value = "12.3" ) - @DecimalMin( value = "12.3" ) + @DecimalMax(value = "12.3") + @DecimalMin(value = "12.3") private BigDecimal decimal9; - @DecimalMax( value = "0.00123" ) - @DecimalMin( value = "0.00123" ) + @DecimalMax(value = "0.00123") + @DecimalMin(value = "0.00123") private BigDecimal decimal10; - @DecimalMax( value = "-1.23E-12" ) - @DecimalMin( value = "-1.23E-12" ) + @DecimalMax(value = "-1.23E-12") + @DecimalMin(value = "-1.23E-12") private BigDecimal decimal11; - @DecimalMax( value = "1234.5E-4" ) - @DecimalMin( value = "1234.5E-4" ) + @DecimalMax(value = "1234.5E-4") + @DecimalMin(value = "1234.5E-4") private BigDecimal decimal12; - @DecimalMax( value = "0E+7" ) - @DecimalMin( value = "0E+7" ) + @DecimalMax(value = "0E+7") + @DecimalMin(value = "0E+7") private BigDecimal decimal13; - @DecimalMax( value = "-0" ) - @DecimalMin( value = "-0" ) + @DecimalMax(value = "-0") + @DecimalMin(value = "-0") private BigDecimal decimal14; @DecimalMax.List({ @DecimalMax(value = "-0"), @DecimalMax(value = "0E+7") }) @DecimalMin.List({ @DecimalMin(value = "-0"), @DecimalMin(value = "0E+7") }) private BigDecimal decimal15; + public ValidDecimalMinMaxParameters( + @DecimalMax(value = "-0") BigDecimal decimal1, + @DecimalMax(value = "0E+7") BigDecimal decimal2, + @DecimalMax(value = "1234.5E-4") BigDecimal decimal3 + ) { + + } + + public void doSomething( + @DecimalMax(value = "-0") BigDecimal decimal1, + @DecimalMax(value = "0E+7") BigDecimal decimal2, + @DecimalMax(value = "1234.5E-4") BigDecimal decimal3 + ) { + + } + + @DecimalMax(value = "1234.5E-4") + public BigDecimal doSomething() { + return BigDecimal.ONE; + } + } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidDigitsParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidDigitsParameters.java index f4917bf2d7..845f971d29 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidDigitsParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidDigitsParameters.java @@ -6,24 +6,45 @@ */ package org.hibernate.validator.ap.testmodel.annotationparameters; -import javax.validation.constraints.Digits; import java.math.BigDecimal; +import javax.validation.constraints.Digits; /** * @author Marko Bekhta */ public class ValidDigitsParameters { - @Digits( integer = 3, fraction = 3 ) + @Digits(integer = 3, fraction = 3) private BigDecimal decimal1; - @Digits( integer = 5, fraction = 3 ) + @Digits(integer = 5, fraction = 3) private BigDecimal decimal2; - @Digits( integer = 0, fraction = 3 ) + @Digits(integer = 0, fraction = 3) private BigDecimal decimal3; @Digits.List({ @Digits(integer = 0, fraction = 3), @Digits(integer = 5, fraction = 3), @Digits(integer = 3, fraction = 3) }) private BigDecimal decimal4; + public ValidDigitsParameters( + @Digits(integer = 0, fraction = 3) BigDecimal decimal1, + @Digits(integer = 5, fraction = 3) BigDecimal decimal2, + @Digits(integer = 3, fraction = 3) BigDecimal decimal3 + ) { + + } + + public void doSomething( + @Digits(integer = 0, fraction = 3) BigDecimal decimal1, + @Digits(integer = 5, fraction = 3) BigDecimal decimal2, + @Digits(integer = 3, fraction = 3) BigDecimal decimal3 + ) { + + } + + @Digits(integer = 0, fraction = 3) + public BigDecimal doSomething() { + return BigDecimal.ONE; + } + } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidLengthParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidLengthParameters.java index 7fd31e1c63..77912de379 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidLengthParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidLengthParameters.java @@ -16,16 +16,28 @@ public class ValidLengthParameters { @Length private String string1; - @Length( min = 10 ) + @Length(min = 10) private String string2; - @Length( max = 10 ) + @Length(max = 10) private String string3; - @Length( min = 10, max = 15 ) + @Length(min = 10, max = 15) private String string4; @Length.List({ @Length(min = 10, max = 15), @Length(max = 10), @Length(min = 10), @Length }) private String string5; + public ValidLengthParameters(@Length(min = 10) String string) { + + } + + public void doSomething(@Length(min = 10) String string) { + + } + + @Length(min = 10) + public String doSomething() { + return ""; + } } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidPatternParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidPatternParameters.java index 9b1a096a39..eab9cc9087 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidPatternParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidPatternParameters.java @@ -13,16 +13,37 @@ */ public class ValidPatternParameters { - @Pattern( regexp = "test" ) + @Pattern(regexp = "test") private String strings1; - @Pattern( regexp = "[test]" ) + @Pattern(regexp = "[test]") private String strings2; - @Pattern( regexp = "\\." ) + @Pattern(regexp = "\\.") private String strings3; @Pattern.List({ @Pattern(regexp = "\\."), @Pattern(regexp = "[test]"), @Pattern(regexp = "test") }) private String strings4; + public ValidPatternParameters( + @Pattern(regexp = "\\.") String strings1, + @Pattern(regexp = "[test]") String strings2, + @Pattern(regexp = "test") String strings3 + ) { + + } + + public void doSomething( + @Pattern(regexp = "\\.") String strings1, + @Pattern(regexp = "[test]") String strings2, + @Pattern(regexp = "test") String strings3 + ) { + + } + + @Pattern(regexp = "\\.") + public String doSomething() { + return ""; + } + } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidScriptAssertParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidScriptAssertParameters.java index 7ec08a7eaa..059d76e82a 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidScriptAssertParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidScriptAssertParameters.java @@ -13,18 +13,20 @@ */ public class ValidScriptAssertParameters { - @ScriptAssert( lang = "some lang", script = "some script" ) + @ScriptAssert(lang = "some lang", script = "some script") public static class Case1 { } - @ScriptAssert( lang = "some lang", script = "some script", alias = "some alias" ) + @ScriptAssert(lang = "some lang", script = "some script", alias = "some alias") public static class Case2 { } - @ScriptAssert.List({ @ScriptAssert(lang = "some lang", script = "some script", alias = "some alias"), - @ScriptAssert(lang = "some lang", script = "some script") }) + @ScriptAssert.List({ + @ScriptAssert(lang = "some lang", script = "some script", alias = "some alias"), + @ScriptAssert(lang = "some lang", script = "some script") + }) public static class Case3 { } diff --git a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidSizeParameters.java b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidSizeParameters.java index dd90f4f854..8e0300b1bc 100644 --- a/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidSizeParameters.java +++ b/annotation-processor/src/test/java/org/hibernate/validator/ap/testmodel/annotationparameters/ValidSizeParameters.java @@ -6,8 +6,9 @@ */ package org.hibernate.validator.ap.testmodel.annotationparameters; -import javax.validation.constraints.Size; import java.util.Collection; +import java.util.Collections; +import javax.validation.constraints.Size; /** * @author Marko Bekhta @@ -17,16 +18,29 @@ public class ValidSizeParameters { @Size private Collection strings1; - @Size( min = 10 ) + @Size(min = 10) private Collection strings2; - @Size( max = 10 ) + @Size(max = 10) private Collection strings3; - @Size( min = 10, max = 15 ) + @Size(min = 10, max = 15) private Collection strings4; @Size.List({ @Size, @Size(min = 10), @Size(max = 15), @Size(min = 10, max = 15) }) private Collection strings5; + public ValidSizeParameters(@Size(min = 10) Collection string) { + + } + + public void doSomething(@Size(min = 10) Collection string) { + + } + + @Size(min = 10) + public Collection doSomething() { + return Collections.emptyList(); + } + }