Functions.java
package org.jsoup.internal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
/**
* An internal class containing functions for use with {@link Map#computeIfAbsent(Object, Function)}.
*/
@SuppressWarnings({"rawtypes", "unchecked"})
public final class Functions {
private static final Function ListFunction = key -> new ArrayList<>();
private static final Function SetFunction = key -> new HashSet<>();
private static final Function MapFunction = key -> new HashMap<>();
private static final Function IdentityMapFunction = key -> new IdentityHashMap<>();
private Functions() {
}
public static <T, U> Function<T, List<U>> listFunction() {
return (Function<T, List<U>>) ListFunction;
}
public static <T, U> Function<T, Set<U>> setFunction() {
return (Function<T, Set<U>>) SetFunction;
}
public static <T, K, V> Function<T, Map<K, V>> mapFunction() {
return (Function<T, Map<K, V>>) MapFunction;
}
public static <T, K, V> Function<T, IdentityHashMap<K, V>> identityMapFunction() {
return (Function<T, IdentityHashMap<K, V>>) IdentityMapFunction;
}
}