From 0e2bfd28ac4ee0c646ad840ddf2f9e55ae75ba8d Mon Sep 17 00:00:00 2001 From: Henry Coles Date: Thu, 17 Aug 2023 11:14:15 +0100 Subject: [PATCH] deprecate methods and remove calls to flatmap --- .../mutationtest/build/MutationTestBuilder.java | 4 +++- .../mutationtest/tooling/SmartSourceLocator.java | 11 ++++------- .../mutationtest/build/MutationSourceTest.java | 6 ++++-- .../java/org/pitest/functional/FCollection.java | 15 +++++++++++---- .../junit/JUnitCustomRunnerTestUnitFinder.java | 12 ++++++------ 5 files changed, 28 insertions(+), 20 deletions(-) diff --git a/pitest-entry/src/main/java/org/pitest/mutationtest/build/MutationTestBuilder.java b/pitest-entry/src/main/java/org/pitest/mutationtest/build/MutationTestBuilder.java index 690ae4a27..260a18607 100644 --- a/pitest-entry/src/main/java/org/pitest/mutationtest/build/MutationTestBuilder.java +++ b/pitest-entry/src/main/java/org/pitest/mutationtest/build/MutationTestBuilder.java @@ -56,7 +56,9 @@ public List createMutationTestUnits( final Collection codeClasses) { final List tus = new ArrayList<>(); - final List mutations = FCollection.flatMap(codeClasses, mutationSource::createMutations); + final List mutations = codeClasses.stream() + .flatMap(c -> mutationSource.createMutations(c).stream()) + .collect(Collectors.toList()); mutations.sort(comparing(MutationDetails::getId)); diff --git a/pitest-entry/src/main/java/org/pitest/mutationtest/tooling/SmartSourceLocator.java b/pitest-entry/src/main/java/org/pitest/mutationtest/tooling/SmartSourceLocator.java index 37eca388b..4eb5ddb44 100644 --- a/pitest-entry/src/main/java/org/pitest/mutationtest/tooling/SmartSourceLocator.java +++ b/pitest-entry/src/main/java/org/pitest/mutationtest/tooling/SmartSourceLocator.java @@ -23,9 +23,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.function.Function; -import org.pitest.functional.FCollection; import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -42,7 +40,10 @@ public class SmartSourceLocator implements SourceLocator { public SmartSourceLocator(final Collection roots, Charset inputCharset) { this.inputCharset = inputCharset; - final Collection childDirs = FCollection.flatMap(roots, collectChildren(MAX_DEPTH)); + final Collection childDirs = roots.stream() + .flatMap(r -> collectDirectories(r, MAX_DEPTH).stream()) + .collect(Collectors.toList()); + childDirs.addAll(roots); this.children = childDirs.stream() @@ -50,10 +51,6 @@ public SmartSourceLocator(final Collection roots, Charset inputCharset) { .collect(Collectors.toList()); } - private Function> collectChildren(final int depth) { - return a -> collectDirectories(a, depth); - } - private Collection collectDirectories(Path root, int depth) { try { if (!Files.exists(root)) { diff --git a/pitest-entry/src/test/java/org/pitest/mutationtest/build/MutationSourceTest.java b/pitest-entry/src/test/java/org/pitest/mutationtest/build/MutationSourceTest.java index 1e739357d..a826d6142 100644 --- a/pitest-entry/src/test/java/org/pitest/mutationtest/build/MutationSourceTest.java +++ b/pitest-entry/src/test/java/org/pitest/mutationtest/build/MutationSourceTest.java @@ -23,6 +23,7 @@ import java.util.List; import java.util.Optional; import java.util.function.Function; +import java.util.stream.Collectors; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; @@ -77,8 +78,9 @@ public void shouldAssignTestsFromPrioritiserToMutant() { } private List makeTestInfos(final Integer... times) { - return new ArrayList<>(FCollection.map(Arrays.asList(times), - timeToTestInfo())); + return Arrays.stream(times) + .map(timeToTestInfo()) + .collect(Collectors.toList()); } private Function timeToTestInfo() { diff --git a/pitest/src/main/java/org/pitest/functional/FCollection.java b/pitest/src/main/java/org/pitest/functional/FCollection.java index 8e7397e20..da6d16742 100644 --- a/pitest/src/main/java/org/pitest/functional/FCollection.java +++ b/pitest/src/main/java/org/pitest/functional/FCollection.java @@ -28,6 +28,7 @@ */ public abstract class FCollection { + @Deprecated public static void mapTo(final Iterable as, final Function f, final Collection bs) { if (as != null) { @@ -37,6 +38,7 @@ public static void mapTo(final Iterable as, } } + @Deprecated public static List map(final Iterable as, final Function f) { final List bs = emptyList(); @@ -55,6 +57,7 @@ public static void flatMapTo(final Iterable as, } } + @Deprecated public static List flatMap( final Iterable as, final Function> f) { final List bs = emptyList(); @@ -62,10 +65,8 @@ public static List flatMap( return bs; } - private static List emptyList() { - return new ArrayList<>(); - } + @Deprecated public static List filter(final Iterable xs, final Predicate predicate) { final List dest = emptyList(); @@ -73,7 +74,7 @@ public static List filter(final Iterable xs, return dest; } - public static void filter(final Iterable xs, + private static void filter(final Iterable xs, final Predicate predicate, final Collection dest) { for (final T x : xs) { if (predicate.test(x)) { @@ -82,6 +83,7 @@ public static void filter(final Iterable xs, } } + @Deprecated public static boolean contains(final Iterable xs, final Predicate predicate) { for (final T x : xs) { @@ -102,6 +104,7 @@ public static A fold(final BiFunction f, final A z, return p; } + @Deprecated public static Collection flatten( final Iterable> ts) { final List list = new ArrayList<>(); @@ -144,4 +147,8 @@ public static Map> bucket(final Iterable bs, return bucketed; } + private static List emptyList() { + return new ArrayList<>(); + } + } diff --git a/pitest/src/main/java/org/pitest/junit/JUnitCustomRunnerTestUnitFinder.java b/pitest/src/main/java/org/pitest/junit/JUnitCustomRunnerTestUnitFinder.java index 736596d40..5546956c8 100644 --- a/pitest/src/main/java/org/pitest/junit/JUnitCustomRunnerTestUnitFinder.java +++ b/pitest/src/main/java/org/pitest/junit/JUnitCustomRunnerTestUnitFinder.java @@ -18,7 +18,6 @@ import java.lang.reflect.AccessibleObject; import java.lang.reflect.Method; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -120,17 +119,18 @@ private boolean isExcludedCategory(final Class a) { private List getCategories(final Class a) { final Category c = a.getAnnotation(Category.class); - return FCollection.flatMap(Arrays.asList(c), toCategoryNames()); + return Stream.of(c) + .flatMap(toCategoryNames()) + .collect(Collectors.toList()); } - private Function> toCategoryNames() { + private Function> toCategoryNames() { return a -> { if (a == null) { - return Collections.emptyList(); + return Stream.empty(); } return Stream.of(a.value()) - .map(Class::getName) - .collect(Collectors.toList()); + .map(Class::getName); }; }