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 79b7fe3c9 Minor refactoring.
79b7fe3c9 is described below
commit 79b7fe3c947af55e10e7a75264dec8a38036a6e4
Author: JamesBognar <[email protected]>
AuthorDate: Fri Jul 1 14:17:37 2022 -0400
Minor refactoring.
---
.../org/apache/juneau/collections/JsonList.java | 28 ++++++++++++++++++++++
.../org/apache/juneau/httppart/HttpPartSchema.java | 2 +-
.../org/apache/juneau/internal/StringUtils.java | 27 +++------------------
.../org/apache/juneau/jsonschema/SchemaUtils.java | 2 +-
.../rest/swagger/BasicSwaggerProviderSession.java | 2 +-
.../test/java/org/apache/juneau/BeanMapTest.java | 16 ++++++-------
.../apache/juneau/transform/AutoListSwapTest.java | 2 +-
7 files changed, 43 insertions(+), 36 deletions(-)
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonList.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonList.java
index 917f8fb70..aaeaa3418 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonList.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonList.java
@@ -21,6 +21,7 @@ import java.util.*;
import java.util.function.*;
import org.apache.juneau.*;
+import org.apache.juneau.internal.*;
import org.apache.juneau.json.*;
import org.apache.juneau.marshaller.*;
import org.apache.juneau.objecttools.*;
@@ -107,8 +108,35 @@ import org.apache.juneau.serializer.*;
* @serial exclude
*/
public class JsonList extends LinkedList<Object> {
+
+
//-----------------------------------------------------------------------------------------------------------------
+ // Static
+
//-----------------------------------------------------------------------------------------------------------------
+
private static final long serialVersionUID = 1L;
+ /**
+ * Parses a string that can consist of either a JSON array or
comma-delimited list.
+ *
+ * <p>
+ * The type of string is auto-detected.
+ *
+ * @param s The string to parse.
+ * @return The parsed string.
+ * @throws ParseException Malformed input encountered.
+ */
+ public static JsonList ofJsonOrCdl(String s) throws ParseException {
+ if (StringUtils.isEmpty(s))
+ return null;
+ if (! StringUtils.isJsonArray(s, true))
+ return new
JsonList((Object[])StringUtils.split(s.trim(), ','));
+ return new JsonList(s);
+ }
+
+
//-----------------------------------------------------------------------------------------------------------------
+ // Instance
+
//-----------------------------------------------------------------------------------------------------------------
+
transient BeanSession session = null;
private transient ObjectRest objectRest;
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 becdb4c2f..54ecf70c4 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
@@ -4053,7 +4053,7 @@ public class HttpPartSchema {
return null;
Set<String> set = set();
try {
- parseListOrCdl(s).forEach(x -> set.add(x.toString()));
+ JsonList.ofJsonOrCdl(s).forEach(x ->
set.add(x.toString()));
} catch (ParseException e) {
throw asRuntimeException(e);
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
index 5d9cf234f..df372a537 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
@@ -33,7 +33,6 @@ import java.util.zip.*;
import javax.xml.bind.*;
import org.apache.juneau.*;
-import org.apache.juneau.collections.*;
import org.apache.juneau.parser.*;
import org.apache.juneau.parser.ParseException;
import org.apache.juneau.reflect.*;
@@ -125,9 +124,8 @@ public final class StringUtils {
* </ul>
* If <jk>null</jk> or <c>Number</c>, uses the best guess.
* @return The parsed number, or <jk>null</jk> if the string was null.
- * @throws ParseException Malformed input encountered.
*/
- public static Number parseNumber(String s, Class<? extends Number>
type) throws ParseException {
+ public static Number parseNumber(String s, Class<? extends Number>
type) {
if (s == null)
return null;
if (s.isEmpty())
@@ -213,9 +211,8 @@ public final class StringUtils {
*
* @param o The string to convert.
* @return The first character of the string if the string is of length
0, or <jk>null</jk> if the string is <jk>null</jk> or empty.
- * @throws ParseException If string has a length greater than 1.
*/
- public static Character parseCharacter(Object o) throws ParseException {
+ public static Character parseCharacter(Object o) {
if (o == null)
return null;
String s = o.toString();
@@ -223,7 +220,7 @@ public final class StringUtils {
return null;
if (s.length() == 1)
return s.charAt(0);
- throw new ParseException("Invalid character: ''{0}''", s);
+ throw new RuntimeException("Invalid character: '"+s+"'");
}
/**
@@ -2432,24 +2429,6 @@ public final class StringUtils {
return false;
}
- /**
- * Parses a string that can consist of either a JSON array or
comma-delimited list.
- *
- * <p>
- * The type of string is auto-detected.
- *
- * @param s The string to parse.
- * @return The parsed string.
- * @throws ParseException Malformed input encountered.
- */
- public static JsonList parseListOrCdl(String s) throws ParseException {
- if (isEmpty(s))
- return null;
- if (! isJsonArray(s, true))
- return new
JsonList((Object[])StringUtils.split(s.trim(), ','));
- return new JsonList(s);
- }
-
/**
* Returns <jk>true</jk> if the specified string is valid JSON.
*
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/SchemaUtils.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/SchemaUtils.java
index 7739146fb..d983deb07 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/SchemaUtils.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/SchemaUtils.java
@@ -91,7 +91,7 @@ public class SchemaUtils {
if (s.isEmpty())
return null;
Set<String> set = set();
- parseListOrCdl(s).forEach(x -> set.add(x.toString()));
+ JsonList.ofJsonOrCdl(s).forEach(x -> set.add(x.toString()));
return set;
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
index 4307b5d87..cccec86e8 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
@@ -690,7 +690,7 @@ public class BasicSwaggerProviderSession {
if (s.isEmpty())
return null;
s = resolve(s);
- return StringUtils.parseListOrCdl(s);
+ return JsonList.ofJsonOrCdl(s);
} catch (ParseException e) {
throw new SwaggerException(e, "Malformed swagger JSON
array encountered in "+location+".", locationArgs);
}
diff --git a/juneau-utest/src/test/java/org/apache/juneau/BeanMapTest.java
b/juneau-utest/src/test/java/org/apache/juneau/BeanMapTest.java
index 9995da036..ded56761c 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/BeanMapTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/BeanMapTest.java
@@ -1565,7 +1565,7 @@ public class BeanMapTest {
// With _type
JsonMap m = new JsonMap(session);
m.put("_type", "LinkedListOfCalendar");
- m.put("items", JsonList.of("2001-07-04T15:30:45Z"));
+ m.put("items", JsonList.ofJsonOrCdl("2001-07-04T15:30:45Z"));
List l = (List)m.cast(Object.class);
assertTrue(l instanceof LinkedList);
@@ -1596,7 +1596,7 @@ public class BeanMapTest {
// Without _type
m = new JsonMap().session(bc.getSession());
- m.put("items", JsonList.of("2001-07-04T15:30:45Z"));
+ m.put("items", JsonList.ofJsonOrCdl("2001-07-04T15:30:45Z"));
l = m.cast(List.class);
assertTrue(l instanceof LinkedList);
@@ -1718,7 +1718,7 @@ public class BeanMapTest {
// With _type
JsonMap m = new JsonMap(session);
m.put("_type", "String2dArray");
- m.put("items", JsonList.of(JsonList.of("1"),JsonList.of("2")));
+ m.put("items",
JsonList.of(JsonList.ofJsonOrCdl("1"),JsonList.ofJsonOrCdl("2")));
String[][] l = (String[][])m.cast(Object.class);
assertEquals("1", l[0][0]);
@@ -1732,7 +1732,7 @@ public class BeanMapTest {
// Without _type
m = new JsonMap();
- m.put("items", JsonList.of(JsonList.of("1"),JsonList.of("2")));
+ m.put("items",
JsonList.of(JsonList.ofJsonOrCdl("1"),JsonList.ofJsonOrCdl("2")));
l = m.cast(String[][].class);
assertEquals("1", l[0][0]);
@@ -1750,7 +1750,7 @@ public class BeanMapTest {
// With _type
JsonMap m = new JsonMap(session);
m.put("_type", "Int2dArray");
- m.put("items", JsonList.of(JsonList.of("1"),JsonList.of("2")));
+ m.put("items",
JsonList.of(JsonList.ofJsonOrCdl("1"),JsonList.ofJsonOrCdl("2")));
int[][] l = (int[][])m.cast(Object.class);
assertEquals(1, l[0][0]);
@@ -1764,7 +1764,7 @@ public class BeanMapTest {
// Without _type
m = new JsonMap();
- m.put("items", JsonList.of(JsonList.of("1"),JsonList.of("2")));
+ m.put("items",
JsonList.of(JsonList.ofJsonOrCdl("1"),JsonList.ofJsonOrCdl("2")));
l = m.cast(int[][].class);
assertEquals(1, l[0][0]);
@@ -2028,8 +2028,8 @@ public class BeanMapTest {
public void testSettingCollectionPropertyMultipleTimes() throws
Exception {
BeanMap m = BeanContext.DEFAULT.newBeanMap(Y.class);
- m.put("f1", JsonList.of("a"));
- m.put("f1", JsonList.of("b"));
+ m.put("f1", JsonList.ofJsonOrCdl("a"));
+ m.put("f1", JsonList.ofJsonOrCdl("b"));
assertEquals("{f1=[b]}", m.toString());
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/transform/AutoListSwapTest.java
b/juneau-utest/src/test/java/org/apache/juneau/transform/AutoListSwapTest.java
index 8a2b5d0c6..aae5887b2 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/transform/AutoListSwapTest.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/transform/AutoListSwapTest.java
@@ -33,7 +33,7 @@ import org.junit.*;
public class AutoListSwapTest {
private static final List<String> STRINGLIST = list("foo");
- private static final JsonList JSONLIST = JsonList.of("foo");
+ private static final JsonList JSONLIST = JsonList.ofJsonOrCdl("foo");
private static ObjectSwap find(Class<?> c) {
return AutoListSwap.find(BeanContext.DEFAULT, ClassInfo.of(c));