a whole bunch of stuff
[ephemerata.git] / KezvhLib / src-lib / net / kezvh / collections / views / MapSlice.java
blob17dcfffdcccea01d32e552037b0d2b2718e022a3
1 /**
2 */
3 package net.kezvh.collections.views;
5 import java.util.AbstractMap;
6 import java.util.AbstractSet;
7 import java.util.Iterator;
8 import java.util.Map;
9 import java.util.Set;
11 /**
12 * @author afflux
13 * @param <K> FIXME comment
14 * @param <V> FIXME comment
16 public class MapSlice<K, V> extends AbstractMap<K, V> {
17 private final class EntrySet extends AbstractSet<Map.Entry<K, V>> {
18 private final Map<K, V> base;
19 private final Set<K> keys;
21 EntrySet(final Map<K, V> base, final Set<K> keys) {
22 this.base = base;
23 this.keys = keys;
26 /**
27 * @see java.util.AbstractCollection#iterator()
28 * @return x
30 @Override
31 public Iterator<java.util.Map.Entry<K, V>> iterator() {
32 return this.base.entrySet().iterator(); // FIXME this is garbage
35 /**
36 * @see java.util.AbstractCollection#size()
37 * @return x
39 @Override
40 public int size() {
41 return this.keys.size();
46 private final EntrySet entrySet;
48 /**
49 * @param base FIXME comment
50 * @param keys FIXME comment
52 public MapSlice(final Map<K, V> base, final Set<K> keys) {
53 this.entrySet = new EntrySet(base, keys);
56 /**
57 * @see java.util.AbstractMap#entrySet()
58 * @return x
60 @Override
61 public Set<Map.Entry<K, V>> entrySet() {
62 return this.entrySet;