package com.googlecode.totallylazy.collections; import com.googlecode.totallylazy.Pair; import java.util.Map; public interface MapFactory<K, V, M extends PersistentMap<K, V>> { M empty(); M empty(Class<K> kClass, Class<V> vClass); M map(); M map(K key, V value); M map(K key1, V value1, K key2, V value2); M map(K key1, V value1, K key2, V value2, K key3, V value3); M map(K key1, V value1, K key2, V value2, K key3, V value3, K key4, V value4); M map(K key1, V value1, K key2, V value2, K key3, V value3, K key4, V value4, K key5, V value5); @SuppressWarnings("unchecked") M map(final Pair<K, V> head, final Pair<K, V>... tail); M map(final Iterable<? extends Pair<K, V>> values); M map(final Map<K, V> values); }