src/jdk.compiler/share/classes/com/sun/tools/sjavac/Util.java
Print this page
rev 2819 : imported patch my-classpath-deps-00
*** 28,40 ****
--- 28,44 ----
import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.file.Path;
import java.util.Arrays;
+ import java.util.Collection;
import java.util.HashSet;
+ import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
+ import java.util.function.Function;
+ import java.util.stream.Collectors;
/**
* Utilities.
*
* <p><b>This is NOT part of any supported API.
*** 181,196 ****
--- 185,219 ----
union.addAll(s1);
union.addAll(s2);
return union;
}
+ public static <E> Set<E> subtract(Set<? extends E> orig,
+ Set<? extends E> toSubtract) {
+ Set<E> difference = new HashSet<>(orig);
+ difference.removeAll(toSubtract);
+ return difference;
+ }
+
public static String getStackTrace(Throwable t) {
StringWriter sw = new StringWriter();
t.printStackTrace(new PrintWriter(sw));
return sw.toString();
}
// TODO: Remove when refactoring from java.io.File to java.nio.file.Path.
public static File pathToFile(Path path) {
return path == null ? null : path.toFile();
}
+
+ public static <E> Set<E> intersection(Collection<? extends E> c1,
+ Collection<? extends E> c2) {
+ Set<E> intersection = new HashSet<E>(c1);
+ intersection.retainAll(c2);
+ return intersection;
+ }
+
+ public static <I, T> Map<I, T> indexBy(Collection<? extends T> c,
+ Function<? super T, ? extends I> indexFunction) {
+ return c.stream().collect(Collectors.toMap(indexFunction, o -> o));
+ }
}