package xapi.collect.api; import xapi.collect.impl.EntryIterable; import xapi.collect.proxy.CollectionProxy; import xapi.fu.In1Out1; public interface ObjectTo <K, V> extends EntryIterable<K,V>, CollectionProxy<K,V>, HasValues<K,V> { V getOrCompute(K key, In1Out1<K,V> factory); interface Many <K, V> extends ObjectTo<K, IntTo<V>> { default boolean add (K key, V value) { return get(key).add(value); } } // Inherited from CollectionProxy // V get(K key); // boolean remove(K key); V put(K key, V value); Class<?> componentType(); }