Skip to content

Commit 9ce906a

Browse files
committed
serializing "format" in StringSchema#describePropertiesTo(), added FormatValidator#formatName() and implemented in builtin validators
1 parent 52cfa4c commit 9ce906a

File tree

9 files changed

+32
-1
lines changed

9 files changed

+32
-1
lines changed

core/src/main/java/org/everit/json/schema/FormatValidator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,8 @@ static FormatValidator forFormat(final String formatName) {
8080
*/
8181
Optional<String> validate(String subject);
8282

83+
default String formatName() {
84+
return "unnamed-format";
85+
}
86+
8387
}

core/src/main/java/org/everit/json/schema/StringSchema.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,5 +214,8 @@ void describePropertiesTo(JSONPrinter writer) {
214214
writer.ifPresent("minLength", minLength);
215215
writer.ifPresent("maxLength", maxLength);
216216
writer.ifPresent("pattern", pattern);
217+
if (formatValidator != null) {
218+
writer.key("format").value(formatValidator.formatName());
219+
}
217220
}
218221
}

core/src/main/java/org/everit/json/schema/internal/DateTimeFormatValidator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,8 @@ public Optional<String> validate(final String subject) {
5151
}
5252
}
5353

54+
@Override
55+
public String formatName() {
56+
return "date-time";
57+
}
5458
}

core/src/main/java/org/everit/json/schema/internal/EmailFormatValidator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,8 @@ public Optional<String> validate(final String subject) {
3333
return Optional.of(String.format("[%s] is not a valid email address", subject));
3434
}
3535

36+
@Override
37+
public String formatName() {
38+
return "email";
39+
}
3640
}

core/src/main/java/org/everit/json/schema/internal/HostnameFormatValidator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,8 @@ public Optional<String> validate(final String subject) {
3535
}
3636
}
3737

38+
@Override
39+
public String formatName() {
40+
return "hostname";
41+
}
3842
}

core/src/main/java/org/everit/json/schema/internal/IPV4Validator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,8 @@ public Optional<String> validate(final String subject) {
3131
return checkIpAddress(subject, IPV4_LENGTH, "[%s] is not a valid ipv4 address");
3232
}
3333

34+
@Override
35+
public String formatName() {
36+
return "ipv4";
37+
}
3438
}

core/src/main/java/org/everit/json/schema/internal/IPV6Validator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,8 @@ public Optional<String> validate(final String subject) {
3131
return checkIpAddress(subject, IPV6_LENGTH, "[%s] is not a valid ipv6 address");
3232
}
3333

34+
@Override
35+
public String formatName() {
36+
return "ipv6";
37+
}
3438
}

core/src/main/java/org/everit/json/schema/internal/URIFormatValidator.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,7 @@ public Optional<String> validate(final String subject) {
3636
}
3737
}
3838

39+
@Override public String formatName() {
40+
return "uri";
41+
}
3942
}

core/src/test/resources/org/everit/jsonvalidator/tostring/stringschema.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22
"type" : "string",
33
"minLength": 0,
44
"maxLength": 10,
5-
"pattern": "a.b*c"
5+
"pattern": "a.b*c",
6+
"format": "date-time"
67
}

0 commit comments

Comments
 (0)