From 3afa0b276679418f4ddd966136d0aedf6e130665 Mon Sep 17 00:00:00 2001 From: Tomasz Wysocki Date: Sat, 5 Sep 2015 22:43:15 +0200 Subject: [PATCH] Add support for javax.validation.Pattern --- .../src/main/java/io/swagger/jackson/ModelResolver.java | 8 ++++++++ .../src/test/java/io/swagger/BeanValidatorTest.java | 3 +++ .../test/java/io/swagger/models/BeanValidationsModel.java | 3 +++ 3 files changed, 14 insertions(+) diff --git a/modules/swagger-core/src/main/java/io/swagger/jackson/ModelResolver.java b/modules/swagger-core/src/main/java/io/swagger/jackson/ModelResolver.java index a41772cae1..297bb1c884 100644 --- a/modules/swagger-core/src/main/java/io/swagger/jackson/ModelResolver.java +++ b/modules/swagger-core/src/main/java/io/swagger/jackson/ModelResolver.java @@ -39,6 +39,7 @@ import javax.validation.constraints.DecimalMin; import javax.validation.constraints.Max; import javax.validation.constraints.Min; +import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; import java.lang.annotation.Annotation; @@ -476,6 +477,13 @@ protected void applyBeanValidatorAnnotations(Property property, Annotation[] ann } } } + if (annos.containsKey("javax.validation.constraints.Pattern")) { + Pattern pattern = (Pattern) annos.get("javax.validation.constraints.Pattern"); + if (property instanceof StringProperty) { + StringProperty ap = (StringProperty) property; + ap.setPattern(pattern.regexp()); + } + } } protected JavaType getInnerType(String innerType) { diff --git a/modules/swagger-core/src/test/java/io/swagger/BeanValidatorTest.java b/modules/swagger-core/src/test/java/io/swagger/BeanValidatorTest.java index 374117af62..16c4e0b66f 100644 --- a/modules/swagger-core/src/test/java/io/swagger/BeanValidatorTest.java +++ b/modules/swagger-core/src/test/java/io/swagger/BeanValidatorTest.java @@ -28,6 +28,9 @@ public void readBeanValidatorTest() { Assert.assertEquals((int) password.getMinLength(), 6); Assert.assertEquals((int) password.getMaxLength(), 20); + final StringProperty email= (StringProperty) properties.get("email"); + Assert.assertEquals((String) email.getPattern(), "(.+?)@(.+?)"); + final DoubleProperty minBalance = (DoubleProperty) properties.get("minBalance"); Assert.assertTrue(minBalance.getExclusiveMinimum()); diff --git a/modules/swagger-core/src/test/java/io/swagger/models/BeanValidationsModel.java b/modules/swagger-core/src/test/java/io/swagger/models/BeanValidationsModel.java index ed9646791a..6bbfd8d323 100644 --- a/modules/swagger-core/src/test/java/io/swagger/models/BeanValidationsModel.java +++ b/modules/swagger-core/src/test/java/io/swagger/models/BeanValidationsModel.java @@ -5,6 +5,7 @@ import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; public class BeanValidationsModel { @@ -21,6 +22,8 @@ public class BeanValidationsModel { protected String password; protected String passwordHint; + + @Pattern(regexp = "(.+?)@(.+?)") protected String email; @DecimalMin(value = "0.1", inclusive = false)