From 7054aab4b8bba6271550cb118fa4b8b0ee76fd26 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 10 Jul 2026 11:34:35 +0100 Subject: [PATCH] refactor switch statements (all in test code) --- .../perf/ManualReadWithTypeResolution.java | 23 ++++---- src/test/java/perf/ObjectReaderTestBase.java | 52 +++++++++---------- .../creators/CreatorNullPrimitivesTest.java | 16 +++--- .../CreatorWithNamingStrategyTest.java | 11 ++-- .../creators/MultiArgConstructorTest.java | 28 ++++------ .../deser/creators/SingleArgCreatorTest.java | 4 +- .../deser/creators/TestCreators3.java | 13 +++-- .../ext/ExternalTypeIdWithCreatorTest.java | 9 ++-- .../ser/filter/CurrentValueDeser4184Test.java | 12 ++--- .../ser/jdk/CollectionSerializationTest.java | 19 +++---- 10 files changed, 79 insertions(+), 108 deletions(-) diff --git a/src/test/java/perf/ManualReadWithTypeResolution.java b/src/test/java/perf/ManualReadWithTypeResolution.java index 17a0981e84..fb5616aad3 100644 --- a/src/test/java/perf/ManualReadWithTypeResolution.java +++ b/src/test/java/perf/ManualReadWithTypeResolution.java @@ -73,18 +73,17 @@ private void doTest() throws Exception String msg; double msesc; - switch (type) { - case 0: - msesc = testDeser(REPS, _input, _mapper, _inputType); - msg = _desc1; - break; - case 1: - msesc = testDeser(REPS, _input, _mapper, _inputTypeRef); - msg = _desc2; - break; - default: - throw new Error(); - } + msg = switch (type) { + case 0 -> { + msesc = testDeser(REPS, _input, _mapper, _inputType); + yield _desc1; + } + case 1 -> { + msesc = testDeser(REPS, _input, _mapper, _inputTypeRef); + yield _desc2; + } + default -> throw new Error(); + }; updateStats(type, (i % 17) == 0, msg, msesc); } } diff --git a/src/test/java/perf/ObjectReaderTestBase.java b/src/test/java/perf/ObjectReaderTestBase.java index 2a98375803..0930e07030 100644 --- a/src/test/java/perf/ObjectReaderTestBase.java +++ b/src/test/java/perf/ObjectReaderTestBase.java @@ -84,20 +84,18 @@ protected void doTest(ObjectMapper mapper1, byte[] byteInput1, Class inputCla final int type = (i++ % TYPES); String msg; - double msesc; - - switch (type) { - case 0: - msg = _desc1; - msesc = testDeser1(REPS, byteInput1, jsonReader); - break; - case 1: - msg = _desc2; - msesc = testDeser2(REPS, byteInput2, arrayReader); - break; - default: - throw new Error(); - } + double msesc = switch (type) { + case 0 -> { + msg = _desc1; + yield testDeser1(REPS, byteInput1, jsonReader); + } + case 1 -> { + msg = _desc2; + yield testDeser2(REPS, byteInput2, arrayReader); + } + default -> throw new Error(); + }; + updateStats(type, (i % 17) == 0, msg, msesc); } } @@ -126,20 +124,18 @@ protected void doTest(ObjectMapper mapper1, String input1, Class inputClass1, Thread.sleep(100L); int type = (i++ % TYPES); String msg; - double msecs; - - switch (type) { - case 0: - msg = _desc1; - msecs = testDeser1(REPS, input1, jsonReader); - break; - case 1: - msg = _desc2; - msecs = testDeser2(REPS, input2, arrayReader); - break; - default: - throw new Error(); - } + double msecs = switch (type) { + case 0 -> { + msg = _desc1; + yield testDeser1(REPS, input1, jsonReader); + } + case 1 -> { + msg = _desc2; + yield testDeser2(REPS, input2, arrayReader); + } + default -> throw new Error(); + }; + updateStats(type, (i % 17) == 0, msg, msecs); } } diff --git a/src/test/java/tools/jackson/databind/deser/creators/CreatorNullPrimitivesTest.java b/src/test/java/tools/jackson/databind/deser/creators/CreatorNullPrimitivesTest.java index 6d43112747..baec46e2e3 100644 --- a/src/test/java/tools/jackson/databind/deser/creators/CreatorNullPrimitivesTest.java +++ b/src/test/java/tools/jackson/databind/deser/creators/CreatorNullPrimitivesTest.java @@ -61,16 +61,12 @@ static class ABCParamIntrospector extends JacksonAnnotationIntrospector { @Override public String findImplicitPropertyName(MapperConfig config, AnnotatedMember param) { if (param instanceof AnnotatedParameter ap) { - switch (ap.getIndex()) { - case 0: - return "a"; - case 1: - return "b"; - case 2: - return "c"; - default: - return "param" + ap.getIndex(); - } + return switch (ap.getIndex()) { + case 0 -> "a"; + case 1 -> "b"; + case 2 -> "c"; + default -> "param" + ap.getIndex(); + }; } return super.findImplicitPropertyName(config, param); } diff --git a/src/test/java/tools/jackson/databind/deser/creators/CreatorWithNamingStrategyTest.java b/src/test/java/tools/jackson/databind/deser/creators/CreatorWithNamingStrategyTest.java index 13e0271bd1..27b87afeb5 100644 --- a/src/test/java/tools/jackson/databind/deser/creators/CreatorWithNamingStrategyTest.java +++ b/src/test/java/tools/jackson/databind/deser/creators/CreatorWithNamingStrategyTest.java @@ -77,12 +77,11 @@ static class NamedParamIntrospector556 extends JacksonAnnotationIntrospector @Override public String findImplicitPropertyName(MapperConfig config, AnnotatedMember param) { if (param instanceof AnnotatedParameter ap) { - switch (ap.getIndex()) { - case 0: return "myAge"; - case 1: return "myName"; - default: - return "param"+ap.getIndex(); - } + return switch (ap.getIndex()) { + case 0 -> "myAge"; + case 1 -> "myName"; + default -> "param" + ap.getIndex(); + }; } return super.findImplicitPropertyName(config, param); } diff --git a/src/test/java/tools/jackson/databind/deser/creators/MultiArgConstructorTest.java b/src/test/java/tools/jackson/databind/deser/creators/MultiArgConstructorTest.java index 522f5ee892..645a9df4d6 100644 --- a/src/test/java/tools/jackson/databind/deser/creators/MultiArgConstructorTest.java +++ b/src/test/java/tools/jackson/databind/deser/creators/MultiArgConstructorTest.java @@ -89,12 +89,11 @@ static class MyParamIntrospector extends JacksonAnnotationIntrospector @Override public String findImplicitPropertyName(MapperConfig config, AnnotatedMember param) { if (param instanceof AnnotatedParameter ap) { - switch (ap.getIndex()) { - case 0: return "a"; - case 1: return "b"; - default: - return "param"+ap.getIndex(); - } + return switch (ap.getIndex()) { + case 0 -> "a"; + case 1 -> "b"; + default -> "param" + ap.getIndex(); + }; } return super.findImplicitPropertyName(config, param); } @@ -166,18 +165,11 @@ public void testBigPartial() throws Exception )); int[] stuff = value.stuff; for (int i = 0; i < stuff.length; ++i) { - int exp; - - switch (i) { - case 6: // These are off-by-one... - case 7: - case 28: - case 34: - exp = i+1; - break; - default: - exp = 0; - } + int exp = switch (i) { // These are off-by-one... + case 6, 7, 28, 34 -> i + 1; + default -> 0; + }; + assertEquals(exp, stuff[i], "Entry #"+i); } } diff --git a/src/test/java/tools/jackson/databind/deser/creators/SingleArgCreatorTest.java b/src/test/java/tools/jackson/databind/deser/creators/SingleArgCreatorTest.java index 5fbe6a6544..a9f54edd1c 100644 --- a/src/test/java/tools/jackson/databind/deser/creators/SingleArgCreatorTest.java +++ b/src/test/java/tools/jackson/databind/deser/creators/SingleArgCreatorTest.java @@ -77,8 +77,8 @@ static class MyParamIntrospector extends JacksonAnnotationIntrospector @Override public String findImplicitPropertyName(MapperConfig config, AnnotatedMember param) { if (param instanceof AnnotatedParameter ap) { - switch (ap.getIndex()) { - case 0: return name; + if (ap.getIndex() == 0) { + return name; } return "param"+ap.getIndex(); } diff --git a/src/test/java/tools/jackson/databind/deser/creators/TestCreators3.java b/src/test/java/tools/jackson/databind/deser/creators/TestCreators3.java index 2d23291efb..16b3363bc6 100644 --- a/src/test/java/tools/jackson/databind/deser/creators/TestCreators3.java +++ b/src/test/java/tools/jackson/databind/deser/creators/TestCreators3.java @@ -98,13 +98,12 @@ static class MyParamIntrospector extends JacksonAnnotationIntrospector @Override public String findImplicitPropertyName(MapperConfig config, AnnotatedMember param) { if (param instanceof AnnotatedParameter ap) { - switch (ap.getIndex()) { - case 0: return "a"; - case 1: return "b"; - case 2: return "c"; - default: - return "param"+ap.getIndex(); - } + return switch (ap.getIndex()) { + case 0 -> "a"; + case 1 -> "b"; + case 2 -> "c"; + default -> "param" + ap.getIndex(); + }; } return super.findImplicitPropertyName(config, param); } diff --git a/src/test/java/tools/jackson/databind/jsontype/ext/ExternalTypeIdWithCreatorTest.java b/src/test/java/tools/jackson/databind/jsontype/ext/ExternalTypeIdWithCreatorTest.java index c6db1a7ef4..3c44bbbbdf 100644 --- a/src/test/java/tools/jackson/databind/jsontype/ext/ExternalTypeIdWithCreatorTest.java +++ b/src/test/java/tools/jackson/databind/jsontype/ext/ExternalTypeIdWithCreatorTest.java @@ -227,11 +227,10 @@ public JsonTypeInfo.Id getMechanism() { @Override public JavaType typeFromId(DatabindContext context, String id) { - switch (id) { - case "track": - return context.constructSpecializedType(superType, MyData3045.class); - } - throw new IllegalArgumentException("No type with id '"+id+"'"); + if (id.equals("track")) { + return context.constructSpecializedType(superType, MyData3045.class); + } + throw new IllegalArgumentException("No type with id '"+id+"'"); } @Override diff --git a/src/test/java/tools/jackson/databind/ser/filter/CurrentValueDeser4184Test.java b/src/test/java/tools/jackson/databind/ser/filter/CurrentValueDeser4184Test.java index 741560770b..2cbcdfe61b 100644 --- a/src/test/java/tools/jackson/databind/ser/filter/CurrentValueDeser4184Test.java +++ b/src/test/java/tools/jackson/databind/ser/filter/CurrentValueDeser4184Test.java @@ -54,13 +54,11 @@ public UserType deserialize(JsonParser p, DeserializationContext ctxt) { } JsonNode node = ctxt.readTree(p); int value = node.path("value").asInt(-1); - switch (value) { - case 1: - return UserType.ADMIN; - case 2: - return UserType.USER; - } - throw new IllegalArgumentException("Bad value: "+value); + return switch (value) { + case 1 -> UserType.ADMIN; + case 2 -> UserType.USER; + default -> throw new IllegalArgumentException("Bad value: " + value); + }; } } diff --git a/src/test/java/tools/jackson/databind/ser/jdk/CollectionSerializationTest.java b/src/test/java/tools/jackson/databind/ser/jdk/CollectionSerializationTest.java index 6ca3246856..700fa53e62 100644 --- a/src/test/java/tools/jackson/databind/ser/jdk/CollectionSerializationTest.java +++ b/src/test/java/tools/jackson/databind/ser/jdk/CollectionSerializationTest.java @@ -211,19 +211,12 @@ public void testCollections() throws IOException } value = ints; } else { - Collection c; - - switch (type) { - case 1: - c = new LinkedList(); - break; - case 2: - c = new TreeSet(); // has to be ordered - break; - default: - c = new ArrayList(); - break; - } + Collection c = switch (type) { + case 1 -> new LinkedList(); + case 2 -> new TreeSet(); // has to be ordered + default -> new ArrayList(); + }; + for (int i = 0; i < entryLen; ++i) { c.add(Integer.valueOf(i)); }