Skip to content

Commit 6183a63

Browse files
committed
Use more immutable collection factory methods
1 parent 72c405c commit 6183a63

File tree

15 files changed

+41
-72
lines changed

15 files changed

+41
-72
lines changed

documentation/src/test/java/example/ClassTemplateDemo.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,9 @@
1111
package example;
1212

1313
import static java.util.Collections.singletonList;
14-
import static java.util.Collections.unmodifiableList;
1514
import static org.junit.jupiter.api.Assertions.assertNotNull;
1615
import static org.junit.jupiter.api.Assertions.assertTrue;
1716

18-
import java.util.Arrays;
1917
import java.util.List;
2018
import java.util.stream.Stream;
2119

@@ -36,7 +34,7 @@ class ClassTemplateDemo {
3634

3735
static final List<String> WELL_KNOWN_FRUITS
3836
// tag::custom_line_break[]
39-
= unmodifiableList(Arrays.asList("apple", "banana", "lemon"));
37+
= List.of("apple", "banana", "lemon");
4038

4139
//end::user_guide[]
4240
@Nullable

documentation/src/test/java/example/ExternalFieldSourceDemo.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010

1111
package example;
1212

13-
import java.util.Arrays;
14-
import java.util.Collections;
1513
import java.util.List;
1614

1715
import org.junit.jupiter.params.ParameterizedTest;
@@ -30,6 +28,6 @@ void testWithExternalFieldSource(String tropicalFruit) {
3028

3129
class FruitUtils {
3230

33-
public static final List<String> tropicalFruits = Collections.unmodifiableList(Arrays.asList("pineapple", "kiwi"));
31+
public static final List<String> tropicalFruits = List.of("pineapple", "kiwi");
3432

3533
}

junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ExtensionContext.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
package org.junit.jupiter.api.extension;
1212

13-
import static java.util.Collections.unmodifiableList;
1413
import static org.apiguardian.api.API.Status.DEPRECATED;
1514
import static org.apiguardian.api.API.Status.EXPERIMENTAL;
1615
import static org.apiguardian.api.API.Status.INTERNAL;
@@ -20,7 +19,6 @@
2019
import java.lang.reflect.Method;
2120
import java.nio.file.Path;
2221
import java.util.ArrayList;
23-
import java.util.Arrays;
2422
import java.util.Collections;
2523
import java.util.List;
2624
import java.util.Map;
@@ -770,13 +768,13 @@ class Namespace {
770768
public static Namespace create(Object... parts) {
771769
Preconditions.notEmpty(parts, "parts array must not be null or empty");
772770
Preconditions.containsNoNullElements(parts, "individual parts must not be null");
773-
return new Namespace(new ArrayList<>(Arrays.asList(parts)));
771+
return new Namespace(List.of(parts));
774772
}
775773

776774
private final List<Object> parts;
777775

778776
private Namespace(List<Object> parts) {
779-
this.parts = parts;
777+
this.parts = List.copyOf(parts);
780778
}
781779

782780
@Override
@@ -815,7 +813,7 @@ public Namespace append(Object... parts) {
815813

816814
@API(status = INTERNAL, since = "5.13")
817815
public List<Object> getParts() {
818-
return unmodifiableList(parts);
816+
return parts;
819817
}
820818
}
821819

junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/DisplayNameUtils.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010

1111
package org.junit.jupiter.engine.descriptor;
1212

13-
import static java.util.Collections.emptyList;
14-
import static java.util.Collections.unmodifiableList;
1513
import static org.junit.platform.commons.support.AnnotationSupport.findAnnotation;
1614

1715
import java.lang.reflect.AnnotatedElement;
@@ -126,18 +124,14 @@ private static Supplier<String> createDisplayNameSupplier(Supplier<List<Class<?>
126124
Class<?> testClass, JupiterConfiguration configuration,
127125
BiFunction<DisplayNameGenerator, List<Class<?>>, String> generatorFunction) {
128126
return () -> {
129-
List<Class<?>> enclosingInstanceTypes = makeUnmodifiable(enclosingInstanceTypesSupplier.get());
127+
List<Class<?>> enclosingInstanceTypes = List.copyOf(enclosingInstanceTypesSupplier.get());
130128
return findDisplayNameGenerator(enclosingInstanceTypes, testClass) //
131129
.map(it -> generatorFunction.apply(it, enclosingInstanceTypes)) //
132130
.orElseGet(() -> generatorFunction.apply(configuration.getDefaultDisplayNameGenerator(),
133131
enclosingInstanceTypes));
134132
};
135133
}
136134

137-
private static <T> List<T> makeUnmodifiable(List<T> list) {
138-
return list.isEmpty() ? emptyList() : unmodifiableList(list);
139-
}
140-
141135
private static Optional<DisplayNameGenerator> findDisplayNameGenerator(List<Class<?>> enclosingInstanceTypes,
142136
Class<?> testClass) {
143137
Preconditions.notNull(testClass, "Test class must not be null");

junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ResourceLockAware.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010

1111
package org.junit.jupiter.engine.descriptor;
1212

13-
import static java.util.Collections.emptyList;
14-
import static java.util.Collections.unmodifiableList;
1513
import static org.junit.jupiter.api.parallel.ResourceLockTarget.CHILDREN;
1614

1715
import java.util.ArrayDeque;
@@ -80,14 +78,11 @@ static Function<ResourceLocksProvider, Set<ResourceLocksProvider.Lock>> enclosin
8078
@Override
8179
public Set<ResourceLocksProvider.Lock> apply(ResourceLocksProvider provider) {
8280
if (this.enclosingInstanceTypes == null) {
83-
this.enclosingInstanceTypes = makeUnmodifiable(enclosingInstanceTypesSupplier.get());
81+
this.enclosingInstanceTypes = List.copyOf(enclosingInstanceTypesSupplier.get());
8482
}
8583
return evaluator.apply(provider, this.enclosingInstanceTypes);
8684
}
8785

88-
private <T> List<T> makeUnmodifiable(List<T> list) {
89-
return list.isEmpty() ? emptyList() : unmodifiableList(list);
90-
}
9186
};
9287
}
9388

junit-platform-commons/src/main/java/org/junit/platform/commons/util/ModuleUtils.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import java.net.URI;
2626
import java.net.URISyntaxException;
2727
import java.util.ArrayList;
28-
import java.util.Collections;
2928
import java.util.LinkedHashSet;
3029
import java.util.List;
3130
import java.util.Optional;
@@ -181,7 +180,7 @@ private static List<Class<?>> scan(Set<ModuleReference> references, ClassFilter
181180
classes.addAll(scanner.scan(reference));
182181
}
183182
logger.debug(() -> "Found " + classes.size() + " classes: " + classes);
184-
return Collections.unmodifiableList(classes);
183+
return List.copyOf(classes);
185184
}
186185

187186
/**
@@ -197,7 +196,7 @@ private static List<Resource> scan(Set<ModuleReference> references, Predicate<Re
197196
classes.addAll(scanner.scan(reference));
198197
}
199198
logger.debug(() -> "Found " + classes.size() + " classes: " + classes);
200-
return Collections.unmodifiableList(classes);
199+
return List.copyOf(classes);
201200
}
202201

203202
/**

junit-platform-commons/src/main/java/org/junit/platform/commons/util/ReflectionUtils.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,7 @@ public static List<Object> readFieldValues(List<Field> fields, @Nullable Object
703703
return fields.stream()
704704
.filter(predicate)
705705
.map(field ->
706-
tryToReadFieldValue(field, instance)
707-
.getOrThrow(ExceptionUtils::throwAsUncheckedException))
706+
tryToReadFieldValue(field, instance).getOrThrow(ExceptionUtils::throwAsUncheckedException))
708707
.toList();
709708
// @formatter:on
710709
}
@@ -1017,14 +1016,14 @@ public static Stream<Class<?>> streamAllClassesInClasspathRoot(URI root, Predica
10171016
* @since 1.1
10181017
*/
10191018
public static List<Class<?>> findAllClassesInClasspathRoot(URI root, ClassFilter classFilter) {
1020-
return Collections.unmodifiableList(classpathScanner.scanForClassesInClasspathRoot(root, classFilter));
1019+
return List.copyOf(classpathScanner.scanForClassesInClasspathRoot(root, classFilter));
10211020
}
10221021

10231022
/**
10241023
* @since 1.11
10251024
*/
10261025
public static List<Resource> findAllResourcesInClasspathRoot(URI root, Predicate<Resource> resourceFilter) {
1027-
return Collections.unmodifiableList(classpathScanner.scanForResourcesInClasspathRoot(root, resourceFilter));
1026+
return List.copyOf(classpathScanner.scanForResourcesInClasspathRoot(root, resourceFilter));
10281027
}
10291028

10301029
/**
@@ -1063,15 +1062,14 @@ public static Stream<Class<?>> streamAllClassesInPackage(String basePackageName,
10631062
* @since 1.1
10641063
*/
10651064
public static List<Class<?>> findAllClassesInPackage(String basePackageName, ClassFilter classFilter) {
1066-
return Collections.unmodifiableList(classpathScanner.scanForClassesInPackage(basePackageName, classFilter));
1065+
return List.copyOf(classpathScanner.scanForClassesInPackage(basePackageName, classFilter));
10671066
}
10681067

10691068
/**
10701069
* @since 1.11
10711070
*/
10721071
public static List<Resource> findAllResourcesInPackage(String basePackageName, Predicate<Resource> resourceFilter) {
1073-
return Collections.unmodifiableList(
1074-
classpathScanner.scanForResourcesInPackage(basePackageName, resourceFilter));
1072+
return List.copyOf(classpathScanner.scanForResourcesInPackage(basePackageName, resourceFilter));
10751073
}
10761074

10771075
/**
@@ -1112,14 +1110,14 @@ public static Stream<Class<?>> streamAllClassesInModule(String moduleName, Predi
11121110
* @since 1.1.1
11131111
*/
11141112
public static List<Class<?>> findAllClassesInModule(String moduleName, ClassFilter classFilter) {
1115-
return Collections.unmodifiableList(ModuleUtils.findAllClassesInModule(moduleName, classFilter));
1113+
return List.copyOf(ModuleUtils.findAllClassesInModule(moduleName, classFilter));
11161114
}
11171115

11181116
/**
11191117
* @since 1.11
11201118
*/
11211119
public static List<Resource> findAllResourcesInModule(String moduleName, Predicate<Resource> resourceFilter) {
1122-
return Collections.unmodifiableList(ModuleUtils.findAllResourcesInModule(moduleName, resourceFilter));
1120+
return List.copyOf(ModuleUtils.findAllResourcesInModule(moduleName, resourceFilter));
11231121
}
11241122

11251123
/**

junit-platform-engine/src/main/java/org/junit/platform/engine/UniqueId.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010

1111
package org.junit.platform.engine;
1212

13-
import static java.util.Collections.singletonList;
14-
import static java.util.Collections.unmodifiableList;
1513
import static org.apiguardian.api.API.Status.STABLE;
1614

1715
import java.io.Serial;
@@ -97,7 +95,7 @@ public static UniqueId root(String segmentType, String value) {
9795
private transient SoftReference<String> toString;
9896

9997
private UniqueId(UniqueIdFormat uniqueIdFormat, Segment segment) {
100-
this(uniqueIdFormat, singletonList(segment));
98+
this(uniqueIdFormat, List.of(segment));
10199
}
102100

103101
/**
@@ -109,7 +107,7 @@ private UniqueId(UniqueIdFormat uniqueIdFormat, Segment segment) {
109107
*/
110108
UniqueId(UniqueIdFormat uniqueIdFormat, List<Segment> segments) {
111109
this.uniqueIdFormat = uniqueIdFormat;
112-
this.segments = segments;
110+
this.segments = List.copyOf(segments);
113111
}
114112

115113
final Optional<Segment> getRoot() {
@@ -130,7 +128,7 @@ public final Optional<String> getEngineId() {
130128
* {@code UniqueId}.
131129
*/
132130
public final List<Segment> getSegments() {
133-
return unmodifiableList(this.segments);
131+
return this.segments;
134132
}
135133

136134
/**
@@ -218,7 +216,7 @@ public boolean hasPrefix(UniqueId potentialPrefix) {
218216
@API(status = STABLE, since = "1.5")
219217
public UniqueId removeLastSegment() {
220218
Preconditions.condition(this.segments.size() > 1, "Cannot remove last remaining segment");
221-
return new UniqueId(uniqueIdFormat, new ArrayList<>(this.segments.subList(0, this.segments.size() - 1)));
219+
return new UniqueId(uniqueIdFormat, List.copyOf(this.segments.subList(0, this.segments.size() - 1)));
222220
}
223221

224222
/**

junit-platform-engine/src/main/java/org/junit/platform/engine/support/hierarchical/CompositeLock.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010

1111
package org.junit.platform.engine.support.hierarchical;
1212

13-
import static java.util.Collections.unmodifiableList;
14-
1513
import java.util.ArrayList;
1614
import java.util.List;
1715
import java.util.concurrent.ForkJoinPool;
@@ -31,7 +29,7 @@ class CompositeLock implements ResourceLock {
3129

3230
CompositeLock(List<ExclusiveResource> resources, List<Lock> locks) {
3331
Preconditions.condition(resources.size() == locks.size(), "Resources and locks must have the same size");
34-
this.resources = unmodifiableList(resources);
32+
this.resources = List.copyOf(resources);
3533
this.locks = Preconditions.notEmpty(locks, "Locks must not be empty");
3634
this.exclusive = resources.stream().anyMatch(
3735
resource -> resource.getLockMode() == ExclusiveResource.LockMode.READ_WRITE);

junit-platform-engine/src/main/java/org/junit/platform/engine/support/store/Namespace.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import static org.apiguardian.api.API.Status.EXPERIMENTAL;
1414

1515
import java.util.ArrayList;
16-
import java.util.Arrays;
1716
import java.util.Collections;
1817
import java.util.List;
1918

@@ -48,7 +47,7 @@ public class Namespace {
4847
public static Namespace create(Object... parts) {
4948
Preconditions.notEmpty(parts, "parts array must not be null or empty");
5049
Preconditions.containsNoNullElements(parts, "individual parts must not be null");
51-
return new Namespace(Arrays.asList(parts));
50+
return new Namespace(List.of(parts));
5251
}
5352

5453
/**
@@ -68,7 +67,7 @@ public static Namespace create(List<Object> objects) {
6867
private final List<Object> parts;
6968

7069
private Namespace(List<Object> parts) {
71-
this.parts = new ArrayList<>(parts);
70+
this.parts = List.copyOf(parts);
7271
}
7372

7473
@Override

0 commit comments

Comments
 (0)