Skip to content

Commit f17b48c

Browse files
gcatanesefrantuma
authored andcommitted
Set regex pattern on array
1 parent 636cff7 commit f17b48c

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/ModelResolver.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1340,9 +1340,15 @@ protected void applyBeanValidatorAnnotations(Schema property, Annotation[] annot
13401340
}
13411341
if (annos.containsKey("javax.validation.constraints.Pattern")) {
13421342
Pattern pattern = (Pattern) annos.get("javax.validation.constraints.Pattern");
1343+
13431344
if (property instanceof StringSchema) {
13441345
property.setPattern(pattern.regexp());
13451346
}
1347+
1348+
if(property.getItems() != null && property.getItems() instanceof StringSchema) {
1349+
property.getItems().setPattern(pattern.regexp());
1350+
}
1351+
13461352
}
13471353
}
13481354

modules/swagger-core/src/test/java/io/swagger/v3/core/converting/PojoTest.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.swagger.v3.oas.annotations.media.Schema;
99
import org.testng.annotations.Test;
1010

11+
import javax.validation.constraints.Pattern;
1112
import java.io.IOException;
1213
import java.lang.reflect.Type;
1314
import java.util.Date;
@@ -645,6 +646,35 @@ public void setIds(String[] ids) {
645646
}
646647
}
647648

649+
@Test(description = "Shows how to provide an array with specific format")
650+
public void testArrayWithPattern() {
651+
652+
String yaml =
653+
"modelArrayWithPattern:\n" +
654+
" type: object\n" +
655+
" properties:\n" +
656+
" ids:\n" +
657+
" type: array\n" +
658+
" items:\n" +
659+
" pattern: \"[a-zA-Z]*\"\n" +
660+
" type: string";
661+
Map<String, io.swagger.v3.oas.models.media.Schema> schemaMap = readAll(modelArrayWithPattern.class);
662+
SerializationMatchers.assertEqualsToYaml(schemaMap, yaml);
663+
}
664+
665+
static class modelArrayWithPattern {
666+
@Pattern(regexp="[a-zA-Z]*")
667+
private String[] ids;
668+
669+
public String[] getIds() {
670+
return ids;
671+
}
672+
673+
public void setIds(String[] ids) {
674+
this.ids = ids;
675+
}
676+
}
677+
648678
@Test(description = "Show how to completely override an object example")
649679
public void testModelExampleOverride() {
650680

0 commit comments

Comments
 (0)