You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2018/07/17 14:53:48 UTC
[juneau] branch master updated: Minor changes to HttpPartSchema
This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new aba2710 Minor changes to HttpPartSchema
aba2710 is described below
commit aba2710558c1e93baa3e60d29343c4a5738f4b23
Author: JamesBognar <ja...@apache.org>
AuthorDate: Tue Jul 17 10:53:33 2018 -0400
Minor changes to HttpPartSchema
---
.../juneau/httppart/HttpPartSchemaTest_Body.java | 31 +-
.../httppart/HttpPartSchemaTest_FormData.java | 54 +--
.../juneau/httppart/HttpPartSchemaTest_Header.java | 54 +--
.../juneau/httppart/HttpPartSchemaTest_Path.java | 36 +-
.../juneau/httppart/HttpPartSchemaTest_Query.java | 54 +--
.../httppart/HttpPartSchemaTest_Response.java | 24 +-
.../HttpPartSchemaTest_ResponseHeader.java | 46 +--
.../juneau/httppart/OpenApiPartParserTest.java | 4 +-
.../org/apache/juneau/http/annotation/Schema.java | 4 +-
.../org/apache/juneau/httppart/HttpPartSchema.java | 116 +++---
.../juneau/httppart/HttpPartSchemaBuilder.java | 396 ++++++++++++++++-----
.../apache/juneau/remoteable/RemoteMethodArg.java | 4 +-
12 files changed, 516 insertions(+), 307 deletions(-)
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java
index 088424f..d13d06f 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java
@@ -50,7 +50,7 @@ public class HttpPartSchemaTest_Body {
@Test
public void a02_basic_onClass() throws Exception {
HttpPartSchema s = HttpPartSchema.create().apply(Body.class, A02.class).noValidate().build();
- assertTrue(s.getRequired());
+ assertTrue(s.isRequired());
assertObjectEquals("{description:'b1\\nb2',example:'f1',required:true,schema:{'$ref':'c1'},_value:'{g1:true}'}", s.getApi());
}
@@ -71,7 +71,7 @@ public class HttpPartSchemaTest_Body {
@Test
public void a03_basic_onParameter() throws Exception {
HttpPartSchema s = HttpPartSchema.create().apply(Body.class, A03.class.getMethod("a", String.class), 0).noValidate().build();
- assertTrue(s.getRequired());
+ assertTrue(s.isRequired());
assertObjectEquals("{description:'b1\\nb2',example:'f1',required:true,schema:{'$ref':'c1'},_value:'{g1:true}'}", s.getApi());
}
@@ -79,6 +79,7 @@ public class HttpPartSchemaTest_Body {
public void a(
@Body(
description={"b3","b3"},
+ required=true,
schema=@Schema($ref="c3"),
example="f2",
api="{g2:true}"
@@ -91,7 +92,7 @@ public class HttpPartSchemaTest_Body {
@Test
public void a04_basic_onParameterAndClass() throws Exception {
HttpPartSchema s = HttpPartSchema.create().apply(Body.class, A04.class.getMethod("a", A02.class), 0).noValidate().build();
- assertTrue(s.getRequired());
+ assertTrue(s.isRequired());
assertObjectEquals("{description:'b3\\nb3',example:'f2',required:true,schema:{'$ref':'c3'},_value:'{g2:true}'}", s.getApi());
}
@@ -188,9 +189,9 @@ public class HttpPartSchemaTest_Body {
assertEquals(4, s.getMinItems().longValue());
assertEquals(5, s.getMaxProperties().longValue());
assertEquals(6, s.getMinProperties().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
- assertTrue(s.getUniqueItems());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
+ assertTrue(s.isUniqueItems());
assertObjectEquals("['e1','e2']", s.getEnum());
assertEquals("c1\nc2", s.getDefault());
@@ -206,9 +207,9 @@ public class HttpPartSchemaTest_Body {
assertEquals(6, items.getMinLength().longValue());
assertEquals(7, items.getMaxItems().longValue());
assertEquals(8, items.getMinItems().longValue());
- assertNull(items.getExclusiveMaximum());
- assertNull(items.getExclusiveMinimum());
- assertNull(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e3','e4']", items.getEnum());
assertEquals("c3\nc4", items.getDefault());
@@ -224,9 +225,9 @@ public class HttpPartSchemaTest_Body {
assertEquals(10, items.getMinLength().longValue());
assertEquals(11, items.getMaxItems().longValue());
assertEquals(12, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e5','e6']", items.getEnum());
assertEquals("c5\nc6", items.getDefault());
@@ -242,9 +243,9 @@ public class HttpPartSchemaTest_Body {
assertEquals(14, items.getMinLength().longValue());
assertEquals(15, items.getMaxItems().longValue());
assertEquals(16, items.getMinItems().longValue());
- assertFalse(items.getExclusiveMaximum());
- assertFalse(items.getExclusiveMinimum());
- assertFalse(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e7','e8']", items.getEnum());
assertEquals("c7\nc8", items.getDefault());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_FormData.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_FormData.java
index b9a0c2b..f8ae41e 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_FormData.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_FormData.java
@@ -90,11 +90,11 @@ public class HttpPartSchemaTest_FormData {
assertEquals(2, s.getMinLength().longValue());
assertEquals(3, s.getMaxItems().longValue());
assertEquals(4, s.getMinItems().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
- assertTrue(s.getUniqueItems());
- assertTrue(s.getRequired());
- assertTrue(s.getSkipIfEmpty());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
+ assertTrue(s.isUniqueItems());
+ assertTrue(s.isRequired());
+ assertTrue(s.isSkipIfEmpty());
assertObjectEquals("['e1','e2','e3']", s.getEnum());
assertEquals("c1\nc2", s.getDefault());
assertObjectEquals("{collectionFormat:'csv','default':'c1\\nc2',description:'b1\\nb2','enum':['e1','e2','e3'],example:'f1',exclusiveMaximum:true,exclusiveMinimum:true,format:'int32',items:{'$ref':'d1'},maximum:'1',maxItems:3,maxLength:1,minimum:'2',minItems:4,minLength:2,multipleOf:'3',pattern:'4',required:true,type:'number',uniqueItems:true,_value:'{g1:true}'}", s.getApi());
@@ -147,11 +147,11 @@ public class HttpPartSchemaTest_FormData {
assertEquals(2, s.getMinLength().longValue());
assertEquals(3, s.getMaxItems().longValue());
assertEquals(4, s.getMinItems().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
- assertTrue(s.getUniqueItems());
- assertTrue(s.getRequired());
- assertTrue(s.getSkipIfEmpty());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
+ assertTrue(s.isUniqueItems());
+ assertTrue(s.isRequired());
+ assertTrue(s.isSkipIfEmpty());
assertObjectEquals("['e1','e2','e3']", s.getEnum());
assertEquals("c1\nc2", s.getDefault());
assertObjectEquals("{collectionFormat:'csv','default':'c1\\nc2',description:'b1\\nb2','enum':['e1','e2','e3'],example:'f1',exclusiveMaximum:true,exclusiveMinimum:true,format:'int32',items:{'$ref':'d1'},maximum:'1',maxItems:3,maxLength:1,minimum:'2',minItems:4,minLength:2,multipleOf:'3',pattern:'4',required:true,type:'number',uniqueItems:true,_value:'{g1:true}'}", s.getApi());
@@ -204,11 +204,11 @@ public class HttpPartSchemaTest_FormData {
assertEquals(6, s.getMinLength().longValue());
assertEquals(7, s.getMaxItems().longValue());
assertEquals(8, s.getMinItems().longValue());
- assertNull(s.getExclusiveMaximum());
- assertNull(s.getExclusiveMinimum());
- assertNull(s.getUniqueItems());
- assertNull(s.getRequired());
- assertNull(s.getSkipIfEmpty());
+ assertFalse(s.isExclusiveMaximum());
+ assertFalse(s.isExclusiveMinimum());
+ assertFalse(s.isUniqueItems());
+ assertFalse(s.isRequired());
+ assertFalse(s.isSkipIfEmpty());
assertObjectEquals("['e4','e5','e6']", s.getEnum());
assertEquals("c3\nc4", s.getDefault());
assertObjectEquals("{collectionFormat:'ssv','default':'c3\\nc4',description:'b3\\nb3','enum':['e4','e5','e6'],example:'f2',format:'int64',items:{'$ref':'d2'},maximum:'5',maxItems:7,maxLength:5,minimum:'6',minItems:8,minLength:6,multipleOf:'7',pattern:'8',type:'integer',_value:'{g2:true}'}", s.getApi());
@@ -308,9 +308,9 @@ public class HttpPartSchemaTest_FormData {
assertEquals(2, items.getMinLength().longValue());
assertEquals(3, items.getMaxItems().longValue());
assertEquals(4, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e1','e2']", items.getEnum());
assertEquals("c1\nc2", items.getDefault());
@@ -326,9 +326,9 @@ public class HttpPartSchemaTest_FormData {
assertEquals(6, items.getMinLength().longValue());
assertEquals(7, items.getMaxItems().longValue());
assertEquals(8, items.getMinItems().longValue());
- assertNull(items.getExclusiveMaximum());
- assertNull(items.getExclusiveMinimum());
- assertNull(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e3','e4']", items.getEnum());
assertEquals("c3\nc4", items.getDefault());
@@ -344,9 +344,9 @@ public class HttpPartSchemaTest_FormData {
assertEquals(10, items.getMinLength().longValue());
assertEquals(11, items.getMaxItems().longValue());
assertEquals(12, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e5','e6']", items.getEnum());
assertEquals("c5\nc6", items.getDefault());
@@ -362,9 +362,9 @@ public class HttpPartSchemaTest_FormData {
assertEquals(14, items.getMinLength().longValue());
assertEquals(15, items.getMaxItems().longValue());
assertEquals(16, items.getMinItems().longValue());
- assertFalse(items.getExclusiveMaximum());
- assertFalse(items.getExclusiveMinimum());
- assertFalse(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e7','e8']", items.getEnum());
assertEquals("c7\nc8", items.getDefault());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Header.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Header.java
index 50427f1..617c8b3 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Header.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Header.java
@@ -90,11 +90,11 @@ public class HttpPartSchemaTest_Header {
assertEquals(2, s.getMinLength().longValue());
assertEquals(3, s.getMaxItems().longValue());
assertEquals(4, s.getMinItems().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
- assertTrue(s.getUniqueItems());
- assertTrue(s.getRequired());
- assertTrue(s.getSkipIfEmpty());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
+ assertTrue(s.isUniqueItems());
+ assertTrue(s.isRequired());
+ assertTrue(s.isSkipIfEmpty());
assertObjectEquals("['e1','e2','e3']", s.getEnum());
assertEquals("c1\nc2", s.getDefault());
assertObjectEquals("{collectionFormat:'csv','default':'c1\\nc2',description:'b1\\nb2','enum':['e1','e2','e3'],example:'f1',exclusiveMaximum:true,exclusiveMinimum:true,format:'int32',items:{'$ref':'d1'},maximum:'1',maxItems:3,maxLength:1,minimum:'2',minItems:4,minLength:2,multipleOf:'3',pattern:'4',required:true,type:'number',uniqueItems:true,_value:'{g1:true}'}", s.getApi());
@@ -147,11 +147,11 @@ public class HttpPartSchemaTest_Header {
assertEquals(2, s.getMinLength().longValue());
assertEquals(3, s.getMaxItems().longValue());
assertEquals(4, s.getMinItems().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
- assertTrue(s.getUniqueItems());
- assertTrue(s.getRequired());
- assertTrue(s.getSkipIfEmpty());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
+ assertTrue(s.isUniqueItems());
+ assertTrue(s.isRequired());
+ assertTrue(s.isSkipIfEmpty());
assertObjectEquals("['e1','e2','e3']", s.getEnum());
assertEquals("c1\nc2", s.getDefault());
assertObjectEquals("{collectionFormat:'csv','default':'c1\\nc2',description:'b1\\nb2','enum':['e1','e2','e3'],example:'f1',exclusiveMaximum:true,exclusiveMinimum:true,format:'int32',items:{'$ref':'d1'},maximum:'1',maxItems:3,maxLength:1,minimum:'2',minItems:4,minLength:2,multipleOf:'3',pattern:'4',required:true,type:'number',uniqueItems:true,_value:'{g1:true}'}", s.getApi());
@@ -204,11 +204,11 @@ public class HttpPartSchemaTest_Header {
assertEquals(6, s.getMinLength().longValue());
assertEquals(7, s.getMaxItems().longValue());
assertEquals(8, s.getMinItems().longValue());
- assertNull(s.getExclusiveMaximum());
- assertNull(s.getExclusiveMinimum());
- assertNull(s.getUniqueItems());
- assertNull(s.getRequired());
- assertNull(s.getSkipIfEmpty());
+ assertFalse(s.isExclusiveMaximum());
+ assertFalse(s.isExclusiveMinimum());
+ assertFalse(s.isUniqueItems());
+ assertFalse(s.isRequired());
+ assertFalse(s.isSkipIfEmpty());
assertObjectEquals("['e4','e5','e6']", s.getEnum());
assertEquals("c3\nc4", s.getDefault());
assertObjectEquals("{collectionFormat:'ssv','default':'c3\\nc4',description:'b3\\nb3','enum':['e4','e5','e6'],example:'f2',format:'int64',items:{'$ref':'d2'},maximum:'5',maxItems:7,maxLength:5,minimum:'6',minItems:8,minLength:6,multipleOf:'7',pattern:'8',type:'integer',_value:'{g2:true}'}", s.getApi());
@@ -308,9 +308,9 @@ public class HttpPartSchemaTest_Header {
assertEquals(2, items.getMinLength().longValue());
assertEquals(3, items.getMaxItems().longValue());
assertEquals(4, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e1','e2']", items.getEnum());
assertEquals("c1\nc2", items.getDefault());
@@ -326,9 +326,9 @@ public class HttpPartSchemaTest_Header {
assertEquals(6, items.getMinLength().longValue());
assertEquals(7, items.getMaxItems().longValue());
assertEquals(8, items.getMinItems().longValue());
- assertNull(items.getExclusiveMaximum());
- assertNull(items.getExclusiveMinimum());
- assertNull(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e3','e4']", items.getEnum());
assertEquals("c3\nc4", items.getDefault());
@@ -344,9 +344,9 @@ public class HttpPartSchemaTest_Header {
assertEquals(10, items.getMinLength().longValue());
assertEquals(11, items.getMaxItems().longValue());
assertEquals(12, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e5','e6']", items.getEnum());
assertEquals("c5\nc6", items.getDefault());
@@ -362,9 +362,9 @@ public class HttpPartSchemaTest_Header {
assertEquals(14, items.getMinLength().longValue());
assertEquals(15, items.getMaxItems().longValue());
assertEquals(16, items.getMinItems().longValue());
- assertFalse(items.getExclusiveMaximum());
- assertFalse(items.getExclusiveMinimum());
- assertFalse(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e7','e8']", items.getEnum());
assertEquals("c7\nc8", items.getDefault());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Path.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Path.java
index 8612836..d061a76 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Path.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Path.java
@@ -82,8 +82,8 @@ public class HttpPartSchemaTest_Path {
assertEquals("4", s.getPattern().pattern());
assertEquals(1, s.getMaxLength().longValue());
assertEquals(2, s.getMinLength().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
assertObjectEquals("['e1','e2','e3']", s.getEnum());
assertObjectEquals("{collectionFormat:'csv',description:'b1\\nb2','enum':['e1','e2','e3'],example:'f1',exclusiveMaximum:true,exclusiveMinimum:true,format:'int32',items:{'$ref':'d1'},maximum:'1',maxLength:1,minimum:'2',minLength:2,multipleOf:'3',pattern:'4',type:'number',_value:'{g1:true}'}", s.getApi());
}
@@ -127,8 +127,8 @@ public class HttpPartSchemaTest_Path {
assertEquals("4", s.getPattern().pattern());
assertEquals(1, s.getMaxLength().longValue());
assertEquals(2, s.getMinLength().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
assertObjectEquals("['e1','e2','e3']", s.getEnum());
assertObjectEquals("{collectionFormat:'csv',description:'b1\\nb2','enum':['e1','e2','e3'],example:'f1',exclusiveMaximum:true,exclusiveMinimum:true,format:'int32',items:{'$ref':'d1'},maximum:'1',maxLength:1,minimum:'2',minLength:2,multipleOf:'3',pattern:'4',type:'number',_value:'{g1:true}'}", s.getApi());
}
@@ -172,8 +172,8 @@ public class HttpPartSchemaTest_Path {
assertEquals("8", s.getPattern().pattern());
assertEquals(5, s.getMaxLength().longValue());
assertEquals(6, s.getMinLength().longValue());
- assertNull(s.getExclusiveMaximum());
- assertNull(s.getExclusiveMinimum());
+ assertFalse(s.isExclusiveMaximum());
+ assertFalse(s.isExclusiveMinimum());
assertObjectEquals("['e4','e5','e6']", s.getEnum());
assertObjectEquals("{collectionFormat:'ssv',description:'b3\\nb3','enum':['e4','e5','e6'],example:'f2',format:'int64',items:{'$ref':'d2'},maximum:'5',maxLength:5,minimum:'6',minLength:6,multipleOf:'7',pattern:'8',type:'integer',_value:'{g2:true}'}", s.getApi());
}
@@ -272,9 +272,9 @@ public class HttpPartSchemaTest_Path {
assertEquals(2, items.getMinLength().longValue());
assertEquals(3, items.getMaxItems().longValue());
assertEquals(4, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e1','e2']", items.getEnum());
assertEquals("c1\nc2", items.getDefault());
@@ -290,9 +290,9 @@ public class HttpPartSchemaTest_Path {
assertEquals(6, items.getMinLength().longValue());
assertEquals(7, items.getMaxItems().longValue());
assertEquals(8, items.getMinItems().longValue());
- assertNull(items.getExclusiveMaximum());
- assertNull(items.getExclusiveMinimum());
- assertNull(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e3','e4']", items.getEnum());
assertEquals("c3\nc4", items.getDefault());
@@ -308,9 +308,9 @@ public class HttpPartSchemaTest_Path {
assertEquals(10, items.getMinLength().longValue());
assertEquals(11, items.getMaxItems().longValue());
assertEquals(12, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e5','e6']", items.getEnum());
assertEquals("c5\nc6", items.getDefault());
@@ -326,9 +326,9 @@ public class HttpPartSchemaTest_Path {
assertEquals(14, items.getMinLength().longValue());
assertEquals(15, items.getMaxItems().longValue());
assertEquals(16, items.getMinItems().longValue());
- assertFalse(items.getExclusiveMaximum());
- assertFalse(items.getExclusiveMinimum());
- assertFalse(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e7','e8']", items.getEnum());
assertEquals("c7\nc8", items.getDefault());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Query.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Query.java
index acc0482..e2799d5 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Query.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Query.java
@@ -90,11 +90,11 @@ public class HttpPartSchemaTest_Query {
assertEquals(2, s.getMinLength().longValue());
assertEquals(3, s.getMaxItems().longValue());
assertEquals(4, s.getMinItems().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
- assertTrue(s.getUniqueItems());
- assertTrue(s.getRequired());
- assertTrue(s.getSkipIfEmpty());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
+ assertTrue(s.isUniqueItems());
+ assertTrue(s.isRequired());
+ assertTrue(s.isSkipIfEmpty());
assertObjectEquals("['e1','e2','e3']", s.getEnum());
assertEquals("c1\nc2", s.getDefault());
assertObjectEquals("{collectionFormat:'csv','default':'c1\\nc2',description:'b1\\nb2','enum':['e1','e2','e3'],example:'f1',exclusiveMaximum:true,exclusiveMinimum:true,format:'int32',items:{'$ref':'d1'},maximum:'1',maxItems:3,maxLength:1,minimum:'2',minItems:4,minLength:2,multipleOf:'3',pattern:'4',required:true,type:'number',uniqueItems:true,_value:'{g1:true}'}", s.getApi());
@@ -147,11 +147,11 @@ public class HttpPartSchemaTest_Query {
assertEquals(2, s.getMinLength().longValue());
assertEquals(3, s.getMaxItems().longValue());
assertEquals(4, s.getMinItems().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
- assertTrue(s.getUniqueItems());
- assertTrue(s.getRequired());
- assertTrue(s.getSkipIfEmpty());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
+ assertTrue(s.isUniqueItems());
+ assertTrue(s.isRequired());
+ assertTrue(s.isSkipIfEmpty());
assertObjectEquals("['e1','e2','e3']", s.getEnum());
assertEquals("c1\nc2", s.getDefault());
assertObjectEquals("{collectionFormat:'csv','default':'c1\\nc2',description:'b1\\nb2','enum':['e1','e2','e3'],example:'f1',exclusiveMaximum:true,exclusiveMinimum:true,format:'int32',items:{'$ref':'d1'},maximum:'1',maxItems:3,maxLength:1,minimum:'2',minItems:4,minLength:2,multipleOf:'3',pattern:'4',required:true,type:'number',uniqueItems:true,_value:'{g1:true}'}", s.getApi());
@@ -204,11 +204,11 @@ public class HttpPartSchemaTest_Query {
assertEquals(6, s.getMinLength().longValue());
assertEquals(7, s.getMaxItems().longValue());
assertEquals(8, s.getMinItems().longValue());
- assertNull(s.getExclusiveMaximum());
- assertNull(s.getExclusiveMinimum());
- assertNull(s.getUniqueItems());
- assertNull(s.getRequired());
- assertNull(s.getSkipIfEmpty());
+ assertFalse(s.isExclusiveMaximum());
+ assertFalse(s.isExclusiveMinimum());
+ assertFalse(s.isUniqueItems());
+ assertFalse(s.isRequired());
+ assertFalse(s.isSkipIfEmpty());
assertObjectEquals("['e4','e5','e6']", s.getEnum());
assertEquals("c3\nc4", s.getDefault());
assertObjectEquals("{collectionFormat:'ssv','default':'c3\\nc4',description:'b3\\nb3','enum':['e4','e5','e6'],example:'f2',format:'int64',items:{'$ref':'d2'},maximum:'5',maxItems:7,maxLength:5,minimum:'6',minItems:8,minLength:6,multipleOf:'7',pattern:'8',type:'integer',_value:'{g2:true}'}", s.getApi());
@@ -308,9 +308,9 @@ public class HttpPartSchemaTest_Query {
assertEquals(2, items.getMinLength().longValue());
assertEquals(3, items.getMaxItems().longValue());
assertEquals(4, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e1','e2']", items.getEnum());
assertEquals("c1\nc2", items.getDefault());
@@ -326,9 +326,9 @@ public class HttpPartSchemaTest_Query {
assertEquals(6, items.getMinLength().longValue());
assertEquals(7, items.getMaxItems().longValue());
assertEquals(8, items.getMinItems().longValue());
- assertNull(items.getExclusiveMaximum());
- assertNull(items.getExclusiveMinimum());
- assertNull(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e3','e4']", items.getEnum());
assertEquals("c3\nc4", items.getDefault());
@@ -344,9 +344,9 @@ public class HttpPartSchemaTest_Query {
assertEquals(10, items.getMinLength().longValue());
assertEquals(11, items.getMaxItems().longValue());
assertEquals(12, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e5','e6']", items.getEnum());
assertEquals("c5\nc6", items.getDefault());
@@ -362,9 +362,9 @@ public class HttpPartSchemaTest_Query {
assertEquals(14, items.getMinLength().longValue());
assertEquals(15, items.getMaxItems().longValue());
assertEquals(16, items.getMinItems().longValue());
- assertFalse(items.getExclusiveMaximum());
- assertFalse(items.getExclusiveMinimum());
- assertFalse(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e7','e8']", items.getEnum());
assertEquals("c7\nc8", items.getDefault());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Response.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Response.java
index cd90caa..c3c0df5 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Response.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Response.java
@@ -183,9 +183,9 @@ public class HttpPartSchemaTest_Response {
assertEquals(4, s.getMinItems().longValue());
assertEquals(5, s.getMaxProperties().longValue());
assertEquals(6, s.getMinProperties().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
- assertTrue(s.getUniqueItems());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
+ assertTrue(s.isUniqueItems());
assertObjectEquals("['e1','e2']", s.getEnum());
assertEquals("c1\nc2", s.getDefault());
@@ -201,9 +201,9 @@ public class HttpPartSchemaTest_Response {
assertEquals(6, items.getMinLength().longValue());
assertEquals(7, items.getMaxItems().longValue());
assertEquals(8, items.getMinItems().longValue());
- assertNull(items.getExclusiveMaximum());
- assertNull(items.getExclusiveMinimum());
- assertNull(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e3','e4']", items.getEnum());
assertEquals("c3\nc4", items.getDefault());
@@ -219,9 +219,9 @@ public class HttpPartSchemaTest_Response {
assertEquals(10, items.getMinLength().longValue());
assertEquals(11, items.getMaxItems().longValue());
assertEquals(12, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e5','e6']", items.getEnum());
assertEquals("c5\nc6", items.getDefault());
@@ -237,9 +237,9 @@ public class HttpPartSchemaTest_Response {
assertEquals(14, items.getMinLength().longValue());
assertEquals(15, items.getMaxItems().longValue());
assertEquals(16, items.getMinItems().longValue());
- assertFalse(items.getExclusiveMaximum());
- assertFalse(items.getExclusiveMinimum());
- assertFalse(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e7','e8']", items.getEnum());
assertEquals("c7\nc8", items.getDefault());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_ResponseHeader.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_ResponseHeader.java
index 6bc92aa..58dfe0f 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_ResponseHeader.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_ResponseHeader.java
@@ -88,9 +88,9 @@ public class HttpPartSchemaTest_ResponseHeader {
assertEquals(2, s.getMinLength().longValue());
assertEquals(3, s.getMaxItems().longValue());
assertEquals(4, s.getMinItems().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
- assertTrue(s.getUniqueItems());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
+ assertTrue(s.isUniqueItems());
assertObjectEquals("['e1','e2','e3']", s.getEnum());
assertEquals("c1\nc2", s.getDefault());
assertObjectEquals("{collectionFormat:'csv','default':'c1\\nc2',description:'b1\\nb2','enum':['e1','e2','e3'],example:'f1',exclusiveMaximum:true,exclusiveMinimum:true,format:'int32',items:{'$ref':'d1'},maximum:'1',maxItems:3,maxLength:1,minimum:'2',minItems:4,minLength:2,multipleOf:'3',pattern:'4',type:'number',uniqueItems:true,_value:'{g1:true}'}", s.getApi());
@@ -141,9 +141,9 @@ public class HttpPartSchemaTest_ResponseHeader {
assertEquals(2, s.getMinLength().longValue());
assertEquals(3, s.getMaxItems().longValue());
assertEquals(4, s.getMinItems().longValue());
- assertTrue(s.getExclusiveMaximum());
- assertTrue(s.getExclusiveMinimum());
- assertTrue(s.getUniqueItems());
+ assertTrue(s.isExclusiveMaximum());
+ assertTrue(s.isExclusiveMinimum());
+ assertTrue(s.isUniqueItems());
assertObjectEquals("['e1','e2','e3']", s.getEnum());
assertEquals("c1\nc2", s.getDefault());
assertObjectEquals("{collectionFormat:'csv','default':'c1\\nc2',description:'b1\\nb2','enum':['e1','e2','e3'],example:'f1',exclusiveMaximum:true,exclusiveMinimum:true,format:'int32',items:{'$ref':'d1'},maximum:'1',maxItems:3,maxLength:1,minimum:'2',minItems:4,minLength:2,multipleOf:'3',pattern:'4',type:'number',uniqueItems:true,_value:'{g1:true}'}", s.getApi());
@@ -194,11 +194,11 @@ public class HttpPartSchemaTest_ResponseHeader {
assertEquals(6, s.getMinLength().longValue());
assertEquals(7, s.getMaxItems().longValue());
assertEquals(8, s.getMinItems().longValue());
- assertNull(s.getExclusiveMaximum());
- assertNull(s.getExclusiveMinimum());
- assertNull(s.getUniqueItems());
- assertNull(s.getRequired());
- assertNull(s.getSkipIfEmpty());
+ assertFalse(s.isExclusiveMaximum());
+ assertFalse(s.isExclusiveMinimum());
+ assertFalse(s.isUniqueItems());
+ assertFalse(s.isRequired());
+ assertFalse(s.isSkipIfEmpty());
assertObjectEquals("['e4','e5','e6']", s.getEnum());
assertEquals("c3\nc4", s.getDefault());
assertObjectEquals("{collectionFormat:'ssv','default':'c3\\nc4',description:'b3\\nb3','enum':['e4','e5','e6'],example:'f2',format:'int64',items:{'$ref':'d2'},maximum:'5',maxItems:7,maxLength:5,minimum:'6',minItems:8,minLength:6,multipleOf:'7',pattern:'8',type:'integer',_value:'{g2:true}'}", s.getApi());
@@ -298,9 +298,9 @@ public class HttpPartSchemaTest_ResponseHeader {
assertEquals(2, items.getMinLength().longValue());
assertEquals(3, items.getMaxItems().longValue());
assertEquals(4, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e1','e2']", items.getEnum());
assertEquals("c1\nc2", items.getDefault());
@@ -316,9 +316,9 @@ public class HttpPartSchemaTest_ResponseHeader {
assertEquals(6, items.getMinLength().longValue());
assertEquals(7, items.getMaxItems().longValue());
assertEquals(8, items.getMinItems().longValue());
- assertNull(items.getExclusiveMaximum());
- assertNull(items.getExclusiveMinimum());
- assertNull(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e3','e4']", items.getEnum());
assertEquals("c3\nc4", items.getDefault());
@@ -334,9 +334,9 @@ public class HttpPartSchemaTest_ResponseHeader {
assertEquals(10, items.getMinLength().longValue());
assertEquals(11, items.getMaxItems().longValue());
assertEquals(12, items.getMinItems().longValue());
- assertTrue(items.getExclusiveMaximum());
- assertTrue(items.getExclusiveMinimum());
- assertTrue(items.getUniqueItems());
+ assertTrue(items.isExclusiveMaximum());
+ assertTrue(items.isExclusiveMinimum());
+ assertTrue(items.isUniqueItems());
assertObjectEquals("['e5','e6']", items.getEnum());
assertEquals("c5\nc6", items.getDefault());
@@ -352,9 +352,9 @@ public class HttpPartSchemaTest_ResponseHeader {
assertEquals(14, items.getMinLength().longValue());
assertEquals(15, items.getMaxItems().longValue());
assertEquals(16, items.getMinItems().longValue());
- assertFalse(items.getExclusiveMaximum());
- assertFalse(items.getExclusiveMinimum());
- assertFalse(items.getUniqueItems());
+ assertFalse(items.isExclusiveMaximum());
+ assertFalse(items.isExclusiveMinimum());
+ assertFalse(items.isUniqueItems());
assertObjectEquals("['e7','e8']", items.getEnum());
assertEquals("c7\nc8", items.getDefault());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java
index 52049b9..38b97ca 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java
@@ -174,14 +174,14 @@ public class OpenApiPartParserTest {
}
try {
- s = schema().minLength(-1l).build();
+ s = schema().minLength(-2l).build();
fail();
} catch (Exception e) {
assertTrue(e.getMessage().contains("minLength cannot be less than zero."));
}
try {
- s = schema().maxLength(-1l).build();
+ s = schema().maxLength(-2l).build();
fail();
} catch (Exception e) {
assertTrue(e.getMessage().contains("maxLength cannot be less than zero."));
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Schema.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Schema.java
index 2267b0a..6d470e1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Schema.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Schema.java
@@ -324,7 +324,7 @@ public @interface Schema {
* (e.g. <js>"$L{my.localized.variable}"</js>).
* </ul>
*/
- int maxProperties() default -1;
+ long maxProperties() default -1;
/**
@@ -340,7 +340,7 @@ public @interface Schema {
* (e.g. <js>"$L{my.localized.variable}"</js>).
* </ul>
*/
- int minProperties() default -1;
+ long minProperties() default -1;
/**
* <mk>required</mk> field of the Swagger <a class="doclink" href="https://swagger.io/specification/v2/#schemaObject">Schema</a> object.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
index 5dd9ff8..73c6317 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
@@ -55,7 +55,7 @@ public class HttpPartSchema {
final String _default;
final Set<String> _enum;
final Map<String,HttpPartSchema> properties;
- final Boolean allowEmptyValue, exclusiveMaximum, exclusiveMinimum, required, uniqueItems, skipIfEmpty;
+ final boolean allowEmptyValue, exclusiveMaximum, exclusiveMinimum, required, uniqueItems, skipIfEmpty;
final CollectionFormat collectionFormat;
final Type type;
final Format format;
@@ -279,12 +279,12 @@ public class HttpPartSchema {
this._default = b._default;
this._enum = copy(b._enum);
this.properties = build(b.properties, b.noValidate);
- this.allowEmptyValue = b.allowEmptyValue;
- this.exclusiveMaximum = b.exclusiveMaximum;
- this.exclusiveMinimum = b.exclusiveMinimum;
- this.required = b.required;
- this.uniqueItems = b.uniqueItems;
- this.skipIfEmpty = b.skipIfEmpty;
+ this.allowEmptyValue = resolve(b.allowEmptyValue);
+ this.exclusiveMaximum = resolve(b.exclusiveMaximum);
+ this.exclusiveMinimum = resolve(b.exclusiveMinimum);
+ this.required = resolve(b.required);
+ this.uniqueItems = resolve(b.uniqueItems);
+ this.skipIfEmpty = resolve(b.skipIfEmpty);
this.collectionFormat = b.collectionFormat;
this.type = b.type;
this.format = b.format;
@@ -342,9 +342,9 @@ public class HttpPartSchema {
case STRING: {
notAllowed.appendIf(properties != null, "properties");
notAllowed.appendIf(additionalProperties != null, "additionalProperties");
- notAllowed.appendIf(exclusiveMaximum != null, "exclusiveMaximum");
- notAllowed.appendIf(exclusiveMinimum != null, "exclusiveMinimum");
- notAllowed.appendIf(uniqueItems != null, "uniqueItems");
+ notAllowed.appendIf(exclusiveMaximum, "exclusiveMaximum");
+ notAllowed.appendIf(exclusiveMinimum, "exclusiveMinimum");
+ notAllowed.appendIf(uniqueItems, "uniqueItems");
notAllowed.appendIf(collectionFormat != CollectionFormat.NO_COLLECTION_FORMAT, "collectionFormat");
notAllowed.appendIf(items != null, "items");
notAllowed.appendIf(maximum != null, "maximum");
@@ -359,8 +359,8 @@ public class HttpPartSchema {
case ARRAY: {
notAllowed.appendIf(properties != null, "properties");
notAllowed.appendIf(additionalProperties != null, "additionalProperties");
- notAllowed.appendIf(exclusiveMaximum != null, "exclusiveMaximum");
- notAllowed.appendIf(exclusiveMinimum != null, "exclusiveMinimum");
+ notAllowed.appendIf(exclusiveMaximum, "exclusiveMaximum");
+ notAllowed.appendIf(exclusiveMinimum, "exclusiveMinimum");
notAllowed.appendIf(pattern != null, "pattern");
notAllowed.appendIf(maximum != null, "maximum");
notAllowed.appendIf(minimum != null, "minimum");
@@ -376,9 +376,9 @@ public class HttpPartSchema {
notAllowed.appendIf(! _enum.isEmpty(), "_enum");
notAllowed.appendIf(properties != null, "properties");
notAllowed.appendIf(additionalProperties != null, "additionalProperties");
- notAllowed.appendIf(exclusiveMaximum != null, "exclusiveMaximum");
- notAllowed.appendIf(exclusiveMinimum != null, "exclusiveMinimum");
- notAllowed.appendIf(uniqueItems != null, "uniqueItems");
+ notAllowed.appendIf(exclusiveMaximum, "exclusiveMaximum");
+ notAllowed.appendIf(exclusiveMinimum, "exclusiveMinimum");
+ notAllowed.appendIf(uniqueItems, "uniqueItems");
notAllowed.appendIf(collectionFormat != CollectionFormat.NO_COLLECTION_FORMAT, "collectionFormat");
notAllowed.appendIf(pattern != null, "pattern");
notAllowed.appendIf(items != null, "items");
@@ -400,7 +400,7 @@ public class HttpPartSchema {
case INTEGER: {
notAllowed.appendIf(properties != null, "properties");
notAllowed.appendIf(additionalProperties != null, "additionalProperties");
- notAllowed.appendIf(uniqueItems != null, "uniqueItems");
+ notAllowed.appendIf(uniqueItems, "uniqueItems");
notAllowed.appendIf(collectionFormat != CollectionFormat.NO_COLLECTION_FORMAT, "collectionFormat");
notAllowed.appendIf(pattern != null, "pattern");
notAllowed.appendIf(items != null, "items");
@@ -416,7 +416,7 @@ public class HttpPartSchema {
case NUMBER: {
notAllowed.appendIf(properties != null, "properties");
notAllowed.appendIf(additionalProperties != null, "additionalProperties");
- notAllowed.appendIf(uniqueItems != null, "uniqueItems");
+ notAllowed.appendIf(uniqueItems, "uniqueItems");
notAllowed.appendIf(collectionFormat != CollectionFormat.NO_COLLECTION_FORMAT, "collectionFormat");
notAllowed.appendIf(pattern != null, "pattern");
notAllowed.appendIf(items != null, "items");
@@ -430,9 +430,9 @@ public class HttpPartSchema {
break;
}
case OBJECT: {
- notAllowed.appendIf(exclusiveMaximum != null, "exclusiveMaximum");
- notAllowed.appendIf(exclusiveMinimum != null, "exclusiveMinimum");
- notAllowed.appendIf(uniqueItems != null, "uniqueItems");
+ notAllowed.appendIf(exclusiveMaximum, "exclusiveMaximum");
+ notAllowed.appendIf(exclusiveMinimum, "exclusiveMinimum");
+ notAllowed.appendIf(uniqueItems, "uniqueItems");
notAllowed.appendIf(collectionFormat != CollectionFormat.NO_COLLECTION_FORMAT, "collectionFormat");
notAllowed.appendIf(pattern != null, "pattern");
notAllowed.appendIf(items != null, "items");
@@ -454,11 +454,11 @@ public class HttpPartSchema {
errors.add("Attributes not allow for type='"+type+"': " + StringUtils.join(notAllowed, ","));
if (invalidFormat)
errors.add("Invalid format for type='"+type+"': '"+format+"'");
- if (exclusiveMaximum != null && maximum == null)
+ if (exclusiveMaximum && maximum == null)
errors.add("Cannot specify exclusiveMaximum with maximum.");
- if (exclusiveMinimum != null && minimum == null)
+ if (exclusiveMinimum && minimum == null)
errors.add("Cannot specify exclusiveMinimum with minimum.");
- if (required != null && required && _default != null)
+ if (required && _default != null)
errors.add("Cannot specify a default value on a required value.");
if (minLength != null && maxLength != null && maxLength < minLength)
errors.add("maxLength cannot be less than minLength.");
@@ -923,54 +923,64 @@ public class HttpPartSchema {
/**
* Returns the <code>exclusiveMaximum</code> field of this schema.
*
- * @return The <code>exclusiveMaximum</code> field of this schema, or <jk>null</jk> if not specified.
+ * @return The <code>exclusiveMaximum</code> field of this schema.
* @see HttpPartSchemaBuilder#exclusiveMaximum(Boolean)
*/
- public Boolean getExclusiveMaximum() {
+ public boolean isExclusiveMaximum() {
return exclusiveMaximum;
}
/**
* Returns the <code>exclusiveMinimum</code> field of this schema.
*
- * @return The <code>exclusiveMinimum</code> field of this schema, or <jk>null</jk> if not specified.
+ * @return The <code>exclusiveMinimum</code> field of this schema.
* @see HttpPartSchemaBuilder#exclusiveMinimum(Boolean)
*/
- public Boolean getExclusiveMinimum() {
+ public boolean isExclusiveMinimum() {
return exclusiveMinimum;
}
/**
* Returns the <code>uniqueItems</code> field of this schema.
*
- * @return The <code>uniqueItems</code> field of this schema, or <jk>null</jk> if not specified.
+ * @return The <code>uniqueItems</code> field of this schema.
* @see HttpPartSchemaBuilder#uniqueItems(Boolean)
*/
- public Boolean getUniqueItems() {
+ public boolean isUniqueItems() {
return uniqueItems;
}
/**
* Returns the <code>required</code> field of this schema.
*
- * @return The <code>required</code> field of this schema, or <jk>null</jk> if not specified.
+ * @return The <code>required</code> field of this schema.
* @see HttpPartSchemaBuilder#required(Boolean)
*/
- public Boolean getRequired() {
+ public boolean isRequired() {
return required;
}
/**
* Returns the <code>skipIfEmpty</code> field of this schema.
*
- * @return The <code>skipIfEmpty</code> field of this schema, or <jk>null</jk> if not specified.
+ * @return The <code>skipIfEmpty</code> field of this schema.
* @see HttpPartSchemaBuilder#skipIfEmpty(Boolean)
*/
- public Boolean getSkipIfEmpty() {
+ public boolean isSkipIfEmpty() {
return skipIfEmpty;
}
/**
+ * Returns the <code>allowEmptyValue</code> field of this schema.
+ *
+ * @return The <code>skipIfEmpty</code> field of this schema.
+ * @see HttpPartSchemaBuilder#skipIfEmpty(Boolean)
+ */
+ public boolean isAllowEmptyValue() {
+ return allowEmptyValue;
+ }
+
+ /**
* Returns the <code>enum</code> field of this schema.
*
* @return The <code>enum</code> field of this schema, or <jk>null</jk> if not specified.
@@ -1135,7 +1145,7 @@ public class HttpPartSchema {
//-----------------------------------------------------------------------------------------------------------------
private boolean isValidRequired(Object x) {
- return x != null || required == null || ! required;
+ return x != null || ! required;
}
private boolean isValidMinProperties(Map<?,?> x) {
@@ -1148,29 +1158,29 @@ public class HttpPartSchema {
private boolean isValidMinimum(Number x) {
if (x instanceof Integer)
- return minimum == null || x.intValue() > minimum.intValue() || (x.intValue() == minimum.intValue() && (exclusiveMinimum == null || ! exclusiveMinimum));
+ return minimum == null || x.intValue() > minimum.intValue() || (x.intValue() == minimum.intValue() && (! exclusiveMinimum));
if (x instanceof Short)
- return minimum == null || x.shortValue() > minimum.shortValue() || (x.intValue() == minimum.shortValue() && (exclusiveMinimum == null || ! exclusiveMinimum));
+ return minimum == null || x.shortValue() > minimum.shortValue() || (x.intValue() == minimum.shortValue() && (! exclusiveMinimum));
if (x instanceof Long)
- return minimum == null || x.longValue() > minimum.longValue() || (x.intValue() == minimum.longValue() && (exclusiveMinimum == null || ! exclusiveMinimum));
+ return minimum == null || x.longValue() > minimum.longValue() || (x.intValue() == minimum.longValue() && (! exclusiveMinimum));
if (x instanceof Float)
- return minimum == null || x.floatValue() > minimum.floatValue() || (x.floatValue() == minimum.floatValue() && (exclusiveMinimum == null || ! exclusiveMinimum));
+ return minimum == null || x.floatValue() > minimum.floatValue() || (x.floatValue() == minimum.floatValue() && (! exclusiveMinimum));
if (x instanceof Double)
- return minimum == null || x.doubleValue() > minimum.doubleValue() || (x.doubleValue() == minimum.doubleValue() && (exclusiveMinimum == null || ! exclusiveMinimum));
+ return minimum == null || x.doubleValue() > minimum.doubleValue() || (x.doubleValue() == minimum.doubleValue() && (! exclusiveMinimum));
return true;
}
private boolean isValidMaximum(Number x) {
if (x instanceof Integer)
- return maximum == null || x.intValue() < maximum.intValue() || (x.intValue() == maximum.intValue() && (exclusiveMaximum == null || ! exclusiveMaximum));
+ return maximum == null || x.intValue() < maximum.intValue() || (x.intValue() == maximum.intValue() && (! exclusiveMaximum));
if (x instanceof Short)
- return maximum == null || x.shortValue() < maximum.shortValue() || (x.intValue() == maximum.shortValue() && (exclusiveMaximum == null || ! exclusiveMaximum));
+ return maximum == null || x.shortValue() < maximum.shortValue() || (x.intValue() == maximum.shortValue() && (! exclusiveMaximum));
if (x instanceof Long)
- return maximum == null || x.longValue() < maximum.longValue() || (x.intValue() == maximum.longValue() && (exclusiveMaximum == null || ! exclusiveMaximum));
+ return maximum == null || x.longValue() < maximum.longValue() || (x.intValue() == maximum.longValue() && (! exclusiveMaximum));
if (x instanceof Float)
- return maximum == null || x.floatValue() < maximum.floatValue() || (x.floatValue() == maximum.floatValue() && (exclusiveMaximum == null || ! exclusiveMaximum));
+ return maximum == null || x.floatValue() < maximum.floatValue() || (x.floatValue() == maximum.floatValue() && (! exclusiveMaximum));
if (x instanceof Double)
- return maximum == null || x.doubleValue() < maximum.doubleValue() || (x.doubleValue() == maximum.doubleValue() && (exclusiveMaximum == null || ! exclusiveMaximum));
+ return maximum == null || x.doubleValue() < maximum.doubleValue() || (x.doubleValue() == maximum.doubleValue() && (! exclusiveMaximum));
return true;
}
@@ -1189,7 +1199,7 @@ public class HttpPartSchema {
}
private boolean isValidAllowEmpty(String x) {
- return (allowEmptyValue != null && allowEmptyValue) || isNotEmpty(x);
+ return allowEmptyValue || isNotEmpty(x);
}
private boolean isValidPattern(String x) {
@@ -1217,7 +1227,7 @@ public class HttpPartSchema {
}
private boolean isValidUniqueItems(Object x) {
- if (uniqueItems != null && uniqueItems) {
+ if (uniqueItems) {
Set<Object> s = new HashSet<>();
for (int i = 0; i < Array.getLength(x); i++) {
Object o = Array.get(x, i);
@@ -1237,7 +1247,7 @@ public class HttpPartSchema {
}
private boolean isValidUniqueItems(Collection<?> x) {
- if (uniqueItems != null && uniqueItems && ! (x instanceof Set)) {
+ if (uniqueItems && ! (x instanceof Set)) {
Set<Object> s = new HashSet<>();
for (Object o : x)
if (! s.add(o))
@@ -1292,6 +1302,10 @@ public class HttpPartSchema {
// Helper methods.
//-----------------------------------------------------------------------------------------------------------------
+ private boolean resolve(Boolean b) {
+ return b == null ? false : b;
+ }
+
final static Set<String> toSet(String[] s) {
return toSet(joinnl(s));
}
@@ -1319,14 +1333,6 @@ public class HttpPartSchema {
}
}
- final static Long toLong(long l) {
- return l == -1 ? null : l;
- }
-
- final static Boolean toBoolean(boolean b) {
- return b == false ? null : b;
- }
-
final static ObjectMap toObjectMap(String[] ss) {
String s = joinnl(ss);
if (s.isEmpty())
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchemaBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchemaBuilder.java
index 16c0dcf..f7b7388 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchemaBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchemaBuilder.java
@@ -117,8 +117,8 @@ public class HttpPartSchemaBuilder {
HttpPartSchemaBuilder apply(Body a) {
api = AnnotationUtils.merge(api, a);
- required(HttpPartSchema.toBoolean(a.required()));
- allowEmptyValue(HttpPartSchema.toBoolean(! a.required()));
+ required(a.required());
+ allowEmptyValue(! a.required());
serializer(a.serializer());
parser(a.parser());
apply(a.schema());
@@ -129,26 +129,26 @@ public class HttpPartSchemaBuilder {
api = AnnotationUtils.merge(api, a);
name(a.value());
name(a.name());
- required(HttpPartSchema.toBoolean(a.required()));
+ required(a.required());
type(a.type());
format(a.format());
- allowEmptyValue(HttpPartSchema.toBoolean(a.allowEmptyValue()));
+ allowEmptyValue(a.allowEmptyValue());
items(a.items());
collectionFormat(a.collectionFormat());
_default(joinnl(a._default()));
maximum(HttpPartSchema.toNumber(a.maximum()));
- exclusiveMaximum(HttpPartSchema.toBoolean(a.exclusiveMaximum()));
+ exclusiveMaximum(a.exclusiveMaximum());
minimum(HttpPartSchema.toNumber(a.minimum()));
- exclusiveMinimum(HttpPartSchema.toBoolean(a.exclusiveMinimum()));
- maxLength(HttpPartSchema.toLong(a.maxLength()));
- minLength(HttpPartSchema.toLong(a.minLength()));
+ exclusiveMinimum(a.exclusiveMinimum());
+ maxLength(a.maxLength());
+ minLength(a.minLength());
pattern(a.pattern());
- maxItems(HttpPartSchema.toLong(a.maxItems()));
- minItems(HttpPartSchema.toLong(a.minItems()));
- uniqueItems(HttpPartSchema.toBoolean(a.uniqueItems()));
+ maxItems(a.maxItems());
+ minItems(a.minItems());
+ uniqueItems(a.uniqueItems());
_enum(HttpPartSchema.toSet(a._enum()));
multipleOf(HttpPartSchema.toNumber(a.multipleOf()));
- skipIfEmpty(HttpPartSchema.toBoolean(a.skipIfEmpty()));
+ skipIfEmpty(a.skipIfEmpty());
parser(a.parser());
serializer(a.serializer());
return this;
@@ -165,15 +165,15 @@ public class HttpPartSchemaBuilder {
collectionFormat(a.collectionFormat());
_default(joinnl(a._default()));
maximum(HttpPartSchema.toNumber(a.maximum()));
- exclusiveMaximum(HttpPartSchema.toBoolean(a.exclusiveMaximum()));
+ exclusiveMaximum(a.exclusiveMaximum());
minimum(HttpPartSchema.toNumber(a.minimum()));
- exclusiveMinimum(HttpPartSchema.toBoolean(a.exclusiveMinimum()));
- maxLength(HttpPartSchema.toLong(a.maxLength()));
- minLength(HttpPartSchema.toLong(a.minLength()));
+ exclusiveMinimum(a.exclusiveMinimum());
+ maxLength(a.maxLength());
+ minLength(a.minLength());
pattern(a.pattern());
- maxItems(HttpPartSchema.toLong(a.maxItems()));
- minItems(HttpPartSchema.toLong(a.minItems()));
- uniqueItems(HttpPartSchema.toBoolean(a.uniqueItems()));
+ maxItems(a.maxItems());
+ minItems(a.minItems());
+ uniqueItems(a.uniqueItems());
_enum(HttpPartSchema.toSet(a._enum()));
multipleOf(HttpPartSchema.toNumber(a.multipleOf()));
allowEmptyValue(false);
@@ -192,26 +192,26 @@ public class HttpPartSchemaBuilder {
api = AnnotationUtils.merge(api, a);
name(a.value());
name(a.name());
- required(HttpPartSchema.toBoolean(a.required()));
+ required(a.required());
type(a.type());
format(a.format());
- allowEmptyValue(HttpPartSchema.toBoolean(a.allowEmptyValue()));
+ allowEmptyValue(a.allowEmptyValue());
items(a.items());
collectionFormat(a.collectionFormat());
_default(joinnl(a._default()));
maximum(HttpPartSchema.toNumber(a.maximum()));
- exclusiveMaximum(HttpPartSchema.toBoolean(a.exclusiveMaximum()));
+ exclusiveMaximum(a.exclusiveMaximum());
minimum(HttpPartSchema.toNumber(a.minimum()));
- exclusiveMinimum(HttpPartSchema.toBoolean(a.exclusiveMinimum()));
- maxLength(HttpPartSchema.toLong(a.maxLength()));
- minLength(HttpPartSchema.toLong(a.minLength()));
+ exclusiveMinimum(a.exclusiveMinimum());
+ maxLength(a.maxLength());
+ minLength(a.minLength());
pattern(a.pattern());
- maxItems(HttpPartSchema.toLong(a.maxItems()));
- minItems(HttpPartSchema.toLong(a.minItems()));
- uniqueItems(HttpPartSchema.toBoolean(a.uniqueItems()));
+ maxItems(a.maxItems());
+ minItems(a.minItems());
+ uniqueItems(a.uniqueItems());
_enum(HttpPartSchema.toSet(a._enum()));
multipleOf(HttpPartSchema.toNumber(a.multipleOf()));
- skipIfEmpty(HttpPartSchema.toBoolean(a.skipIfEmpty()));
+ skipIfEmpty(a.skipIfEmpty());
parser(a.parser());
serializer(a.serializer());
return this;
@@ -221,26 +221,26 @@ public class HttpPartSchemaBuilder {
api = AnnotationUtils.merge(api, a);
name(a.value());
name(a.name());
- required(HttpPartSchema.toBoolean(a.required()));
+ required(a.required());
type(a.type());
format(a.format());
- allowEmptyValue(HttpPartSchema.toBoolean(a.allowEmptyValue()));
+ allowEmptyValue(a.allowEmptyValue());
items(a.items());
collectionFormat(a.collectionFormat());
_default(joinnl(a._default()));
maximum(HttpPartSchema.toNumber(a.maximum()));
- exclusiveMaximum(HttpPartSchema.toBoolean(a.exclusiveMaximum()));
+ exclusiveMaximum(a.exclusiveMaximum());
minimum(HttpPartSchema.toNumber(a.minimum()));
- exclusiveMinimum(HttpPartSchema.toBoolean(a.exclusiveMinimum()));
- maxLength(HttpPartSchema.toLong(a.maxLength()));
- minLength(HttpPartSchema.toLong(a.minLength()));
+ exclusiveMinimum(a.exclusiveMinimum());
+ maxLength(a.maxLength());
+ minLength(a.minLength());
pattern(a.pattern());
- maxItems(HttpPartSchema.toLong(a.maxItems()));
- minItems(HttpPartSchema.toLong(a.minItems()));
- uniqueItems(HttpPartSchema.toBoolean(a.uniqueItems()));
+ maxItems(a.maxItems());
+ minItems(a.minItems());
+ uniqueItems(a.uniqueItems());
_enum(HttpPartSchema.toSet(a._enum()));
multipleOf(HttpPartSchema.toNumber(a.multipleOf()));
- skipIfEmpty(HttpPartSchema.toBoolean(a.skipIfEmpty()));
+ skipIfEmpty(a.skipIfEmpty());
parser(a.parser());
serializer(a.serializer());
return this;
@@ -253,14 +253,14 @@ public class HttpPartSchemaBuilder {
type(a.type());
format(a.format());
items(a.items());
- allowEmptyValue(HttpPartSchema.toBoolean(a.allowEmptyValue()));
+ allowEmptyValue(a.allowEmptyValue());
collectionFormat(a.collectionFormat());
maximum(HttpPartSchema.toNumber(a.maximum()));
- exclusiveMaximum(HttpPartSchema.toBoolean(a.exclusiveMaximum()));
+ exclusiveMaximum(a.exclusiveMaximum());
minimum(HttpPartSchema.toNumber(a.minimum()));
- exclusiveMinimum(HttpPartSchema.toBoolean(a.exclusiveMinimum()));
- maxLength(HttpPartSchema.toLong(a.maxLength()));
- minLength(HttpPartSchema.toLong(a.minLength()));
+ exclusiveMinimum(a.exclusiveMinimum());
+ maxLength(a.maxLength());
+ minLength(a.minLength());
pattern(a.pattern());
_enum(HttpPartSchema.toSet(a._enum()));
multipleOf(HttpPartSchema.toNumber(a.multipleOf()));
@@ -288,15 +288,15 @@ public class HttpPartSchemaBuilder {
collectionFormat(a.collectionFormat());
_default(joinnl(a._default()));
maximum(HttpPartSchema.toNumber(a.maximum()));
- exclusiveMaximum(HttpPartSchema.toBoolean(a.exclusiveMaximum()));
+ exclusiveMaximum(a.exclusiveMaximum());
minimum(HttpPartSchema.toNumber(a.minimum()));
- exclusiveMinimum(HttpPartSchema.toBoolean(a.exclusiveMinimum()));
- maxLength(HttpPartSchema.toLong(a.maxLength()));
- minLength(HttpPartSchema.toLong(a.minLength()));
+ exclusiveMinimum(a.exclusiveMinimum());
+ maxLength(a.maxLength());
+ minLength(a.minLength());
pattern(a.pattern());
- maxItems(HttpPartSchema.toLong(a.maxItems()));
- minItems(HttpPartSchema.toLong(a.minItems()));
- uniqueItems(HttpPartSchema.toBoolean(a.uniqueItems()));
+ maxItems(a.maxItems());
+ minItems(a.minItems());
+ uniqueItems(a.uniqueItems());
_enum(HttpPartSchema.toSet(a._enum()));
multipleOf(HttpPartSchema.toNumber(a.multipleOf()));
return this;
@@ -310,15 +310,15 @@ public class HttpPartSchemaBuilder {
collectionFormat(a.collectionFormat());
_default(joinnl(a._default()));
maximum(HttpPartSchema.toNumber(a.maximum()));
- exclusiveMaximum(HttpPartSchema.toBoolean(a.exclusiveMaximum()));
+ exclusiveMaximum(a.exclusiveMaximum());
minimum(HttpPartSchema.toNumber(a.minimum()));
- exclusiveMinimum(HttpPartSchema.toBoolean(a.exclusiveMinimum()));
- maxLength(HttpPartSchema.toLong(a.maxLength()));
- minLength(HttpPartSchema.toLong(a.minLength()));
+ exclusiveMinimum(a.exclusiveMinimum());
+ maxLength(a.maxLength());
+ minLength(a.minLength());
pattern(a.pattern());
- maxItems(HttpPartSchema.toLong(a.maxItems()));
- minItems(HttpPartSchema.toLong(a.minItems()));
- uniqueItems(HttpPartSchema.toBoolean(a.uniqueItems()));
+ maxItems(a.maxItems());
+ minItems(a.minItems());
+ uniqueItems(a.uniqueItems());
_enum(HttpPartSchema.toSet(a._enum()));
multipleOf(HttpPartSchema.toNumber(a.multipleOf()));
return this;
@@ -330,19 +330,19 @@ public class HttpPartSchemaBuilder {
items(a.items());
_default(joinnl(a._default()));
maximum(HttpPartSchema.toNumber(a.maximum()));
- exclusiveMaximum(HttpPartSchema.toBoolean(a.exclusiveMaximum()));
+ exclusiveMaximum(a.exclusiveMaximum());
minimum(HttpPartSchema.toNumber(a.minimum()));
- exclusiveMinimum(HttpPartSchema.toBoolean(a.exclusiveMinimum()));
- maxLength(HttpPartSchema.toLong(a.maxLength()));
- minLength(HttpPartSchema.toLong(a.minLength()));
+ exclusiveMinimum(a.exclusiveMinimum());
+ maxLength(a.maxLength());
+ minLength(a.minLength());
pattern(a.pattern());
- maxItems(HttpPartSchema.toLong(a.maxItems()));
- minItems(HttpPartSchema.toLong(a.minItems()));
- uniqueItems(HttpPartSchema.toBoolean(a.uniqueItems()));
+ maxItems(a.maxItems());
+ minItems(a.minItems());
+ uniqueItems(a.uniqueItems());
_enum(HttpPartSchema.toSet(a._enum()));
multipleOf(HttpPartSchema.toNumber(a.multipleOf()));
- maxProperties(HttpPartSchema.toLong(a.maxProperties()));
- minProperties(HttpPartSchema.toLong(a.minProperties()));
+ maxProperties(a.maxProperties());
+ minProperties(a.minProperties());
properties(HttpPartSchema.toObjectMap(a.properties()));
additionalProperties(HttpPartSchema.toObjectMap(a.additionalProperties()));
return this;
@@ -475,8 +475,26 @@ public class HttpPartSchemaBuilder {
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder required(Boolean value) {
- if (value != null)
- required = value;
+ required = resolve(value, required);
+ return this;
+ }
+
+ /**
+ * <mk>required</mk> field.
+ *
+ * <p>
+ * Determines whether the parameter is mandatory.
+ *
+ * <p>
+ * Same as {@Link #required(Boolean)} but takes in a boolean value as a string.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty.
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder required(String value) {
+ required = resolve(value, required);
return this;
}
@@ -659,8 +677,23 @@ public class HttpPartSchemaBuilder {
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder allowEmptyValue(Boolean value) {
- if (value != null)
- allowEmptyValue = value;
+ allowEmptyValue = resolve(value, allowEmptyValue);
+ return this;
+ }
+
+ /**
+ * <mk>allowEmptyValue</mk> field.
+ *
+ * <p>
+ * Same as {@link #allowEmptyValue(Boolean)} but takes in a string boolean value.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty.
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder allowEmptyValue(String value) {
+ allowEmptyValue = resolve(value, allowEmptyValue);
return this;
}
@@ -861,8 +894,23 @@ public class HttpPartSchemaBuilder {
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder exclusiveMaximum(Boolean value) {
- if (value != null)
- this.exclusiveMaximum = value;
+ exclusiveMaximum = resolve(value, exclusiveMaximum);
+ return this;
+ }
+
+ /**
+ * <mk>exclusiveMaximum</mk> field.
+ *
+ * <p>
+ * Same as {@link #exclusiveMaximum(Boolean)} but takes in a string boolean value.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty.
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder exclusiveMaximum(String value) {
+ exclusiveMaximum = resolve(value, exclusiveMaximum);
return this;
}
@@ -932,8 +980,23 @@ public class HttpPartSchemaBuilder {
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder exclusiveMinimum(Boolean value) {
- if (value != null)
- this.exclusiveMinimum = value;
+ exclusiveMinimum = resolve(value, exclusiveMinimum);
+ return this;
+ }
+
+ /**
+ * <mk>exclusiveMinimum</mk> field.
+ *
+ * <p>
+ * Same as {@link #exclusiveMinimum(Boolean)} but takes in a string boolean value.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty.
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder exclusiveMinimum(String value) {
+ exclusiveMinimum = resolve(value, exclusiveMinimum);
return this;
}
@@ -970,12 +1033,27 @@ public class HttpPartSchemaBuilder {
*
* @param value
* The new value for this property.
- * <br>Ignored if value is <jk>null</jk>.
+ * <br>Ignored if value is <jk>null</jk> or <code>-1</code>.
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder maxLength(Long value) {
- if (value != null)
- this.maxLength = value;
+ maxLength = resolve(value, maxLength);
+ return this;
+ }
+
+ /**
+ * <mk>maxLength</mk> field.
+ *
+ * <p>
+ * Same as {@link #maxLength(Long)} but takes in a string number.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty.
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder maxLength(String value) {
+ maxLength = resolve(value, maxLength);
return this;
}
@@ -1000,12 +1078,27 @@ public class HttpPartSchemaBuilder {
*
* @param value
* The new value for this property.
- * <br>Ignored if value is <jk>null</jk>.
+ * <br>Ignored if value is <jk>null</jk> or <code>-1</code>.
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder minLength(Long value) {
- if (value != null)
- this.minLength = value;
+ minLength = resolve(value, minLength);
+ return this;
+ }
+
+ /**
+ * <mk>minLength</mk> field.
+ *
+ * <p>
+ * Same as {@link #minLength(Long)} but takes in a string number.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty.
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder minLength(String value) {
+ minLength = resolve(value, minLength);
return this;
}
@@ -1062,12 +1155,27 @@ public class HttpPartSchemaBuilder {
*
* @param value
* The new value for this property.
- * <br>Ignored if value is <jk>null</jk>.
+ * <br>Ignored if value is <jk>null</jk> or <code>-1</code>.
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder maxItems(Long value) {
- if (value != null)
- this.maxItems = value;
+ maxItems = resolve(value, maxItems);
+ return this;
+ }
+
+ /**
+ * <mk>maxItems</mk> field.
+ *
+ * <p>
+ * Same as {@link #maxItems(Long)} but takes in a string number.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty.
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder maxItems(String value) {
+ maxItems = resolve(value, maxItems);
return this;
}
@@ -1091,12 +1199,27 @@ public class HttpPartSchemaBuilder {
*
* @param value
* The new value for this property.
- * <br>Ignored if value is <jk>null</jk>.
+ * <br>Ignored if value is <jk>null</jk> or <code>-1<code>.
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder minItems(Long value) {
- if (value != null)
- this.minItems = value;
+ minItems = resolve(value, minItems);
+ return this;
+ }
+
+ /**
+ * <mk>minItems</mk> field.
+ *
+ * <p>
+ * Same as {@link #minItems(Long)} but takes in a string number.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty.
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder minItems(String value) {
+ minItems = resolve(value, minItems);
return this;
}
@@ -1128,8 +1251,23 @@ public class HttpPartSchemaBuilder {
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder uniqueItems(Boolean value) {
- if (value != null)
- this.uniqueItems = value;
+ uniqueItems = resolve(value, uniqueItems);
+ return this;
+ }
+
+ /**
+ * <mk>uniqueItems</mk> field.
+ *
+ * <p>
+ * Same as {@link #uniqueItems(Boolean)} but takes in a string boolean.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty..
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder uniqueItems(String value) {
+ uniqueItems = resolve(value, uniqueItems);
return this;
}
@@ -1146,7 +1284,10 @@ public class HttpPartSchemaBuilder {
}
/**
- * Identifies whether an item should be skipped if it's empty.
+ * <mk>skipIfEmpty</mk> field.
+ *
+ * <p>
+ * Identifies whether an item should be skipped during serialization if it's empty.
*
* @param value
* The new value for this property.
@@ -1154,8 +1295,23 @@ public class HttpPartSchemaBuilder {
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder skipIfEmpty(Boolean value) {
- if (value != null)
- this.skipIfEmpty = value;
+ skipIfEmpty = resolve(value, skipIfEmpty);
+ return this;
+ }
+
+ /**
+ * <mk>skipIfEmpty</mk> field.
+ *
+ * <p>
+ * Same as {@link #skipIfEmpty(Boolean)} but takes in a string boolean.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty.
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder skipIfEmpty(String value) {
+ skipIfEmpty = resolve(value, skipIfEmpty);
return this;
}
@@ -1252,12 +1408,27 @@ public class HttpPartSchemaBuilder {
*
* @param value
* The new value for this property.
- * <br>Ignored if value is <jk>null</jk>.
+ * <br>Ignored if value is <jk>null</jk> or <code>-1</code>.
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder maxProperties(Long value) {
- if (value != null && value != -1)
- this.maxProperties = value;
+ maxProperties = resolve(value, maxProperties);
+ return this;
+ }
+
+ /**
+ * <mk>mapProperties</mk> field.
+ *
+ * <p>
+ * Same as {@link #maxProperties(Long)} but takes in a string number.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty.
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder maxProperties(String value) {
+ maxProperties = resolve(value, maxProperties);
return this;
}
@@ -1276,8 +1447,23 @@ public class HttpPartSchemaBuilder {
* @return This object (for method chaining).
*/
public HttpPartSchemaBuilder minProperties(Long value) {
- if (value != null && value != -1)
- this.minProperties = value;
+ minProperties = resolve(value, minProperties);
+ return this;
+ }
+
+ /**
+ * <mk>minProperties</mk> field.
+ *
+ * <p>
+ * Same as {@link #minProperties(Long)} but takes in a string boolean.
+ *
+ * @param value
+ * The new value for this property.
+ * <br>Ignored if value is <jk>null</jk> or empty.
+ * @return This object (for method chaining).
+ */
+ public HttpPartSchemaBuilder minProperties(String value) {
+ minProperties = resolve(value, minProperties);
return this;
}
@@ -1390,4 +1576,20 @@ public class HttpPartSchemaBuilder {
public HttpPartSchemaBuilder noValidate() {
return noValidate(true);
}
+
+ private Boolean resolve(String newValue, Boolean oldValue) {
+ return isEmpty(newValue) ? oldValue : Boolean.valueOf(newValue);
+ }
+
+ private Boolean resolve(Boolean newValue, Boolean oldValue) {
+ return newValue == null ? oldValue : newValue;
+ }
+
+ private Long resolve(String newValue, Long oldValue) {
+ return isEmpty(newValue) ? oldValue : Long.parseLong(newValue);
+ }
+
+ private Long resolve(Long newValue, Long oldValue) {
+ return (newValue == null || newValue == -1) ? oldValue : newValue;
+ }
}
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java
index b715b85..5725950 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java
@@ -45,7 +45,7 @@ public final class RemoteMethodArg {
this.serializer = newInstance(HttpPartSerializer.class, schema == null ? null : schema.getSerializer());
this.schema = schema;
this.name = schema == null ? null : schema.getName();
- this.skipIfEmpty = schema == null || schema.getSkipIfEmpty() == null ? false : schema.getSkipIfEmpty();
+ this.skipIfEmpty = schema == null ? false : schema.isSkipIfEmpty();
}
RemoteMethodArg(HttpPartType partType, HttpPartSchema schema, String defaultName) {
@@ -54,7 +54,7 @@ public final class RemoteMethodArg {
this.serializer = newInstance(HttpPartSerializer.class, schema == null ? null : schema.getSerializer());
this.schema = schema;
this.name = StringUtils.firstNonEmpty(schema == null ? null : schema.getName(), defaultName);
- this.skipIfEmpty = schema == null || schema.getSkipIfEmpty() == null ? false : schema.getSkipIfEmpty();
+ this.skipIfEmpty = schema == null ? false : schema.isSkipIfEmpty();
}
/**