File: MemRefInfere.java

package info (click to toggle)
checker-framework-java 3.2.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 22,840 kB
  • sloc: java: 145,910; xml: 839; sh: 518; makefile: 401; perl: 26
file content (25 lines) | stat: -rw-r--r-- 912 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package inference;

import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.stream.Collector;
import java.util.stream.Collectors;

public abstract class MemRefInfere<K, V> implements Map<K, V>, Serializable {
    public static <K1, V1> MemRefInfere<K1, V1> copyOf(Map<? extends K1, ? extends V1> map) {
        throw new RuntimeException();
    }

    public static <T, K2, V2> Collector<T, ?, MemRefInfere<K2, V2>> toImmutableMap(
            Function<? super T, ? extends K2> keyFunction,
            Function<? super T, ? extends V2> valueFunction,
            BinaryOperator<V2> mergeFunction) {

        return Collectors.collectingAndThen(
                Collectors.toMap(keyFunction, valueFunction, mergeFunction, LinkedHashMap::new),
                MemRefInfere::copyOf);
    }
}