1dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhupackage com.coremedia.iso.boxes.mdat;
2dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
3dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport java.util.Collection;
4dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport java.util.Collections;
5dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport java.util.Comparator;
6dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport java.util.HashSet;
7dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport java.util.Map;
8dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport java.util.Set;
9dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
10dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu/**
11dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * A SortedSet that contains just one value.
12dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu */
13dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhupublic class DummyMap<K, V> implements Map<K, V> {
14dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    HashSet<K> keys = new HashSet<K>();
15dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    V value;
16dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
17dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public DummyMap(V value) {
18dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        this.value = value;
19dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
20dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
21dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public Comparator<? super K> comparator() {
22dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return null;  // I don't have any
23dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
24dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
25dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public void addKeys(K[] keys) {
26dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        Collections.addAll(this.keys, keys);
27dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
28dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
29dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
30dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public int size() {
31dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return keys.size();
32dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
33dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
34dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public boolean isEmpty() {
35dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return keys.isEmpty();
36dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
37dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
38dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public boolean containsKey(Object key) {
39dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return keys.contains(key);
40dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
41dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
42dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public boolean containsValue(Object value) {
43dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return this.value == value;
44dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
45dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
46dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public V get(Object key) {
47dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return keys.contains(key) ? value : null;
48dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
49dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
50dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public V put(K key, V value) {
51dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        assert this.value == value;
52dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        keys.add(key);
53dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return this.value;
54dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
55dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
56dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public V remove(Object key) {
57dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        V v = get(key);
58dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        keys.remove(key);
59dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return v;
60dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
61dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
62dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public void putAll(Map<? extends K, ? extends V> m) {
63dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        for (K k : m.keySet()) {
64dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu            assert m.get(k) == value;
65dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu            this.keys.add(k);
66dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        }
67dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
68dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
69dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public void clear() {
70dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        keys.clear();
71dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
72dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
73dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public Set<K> keySet() {
74dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return keys;
75dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
76dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
77dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public Collection<V> values() {
78dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        throw new UnsupportedOperationException();
79dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
80dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
81dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public Set<Entry<K, V>> entrySet() {
82dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        throw new UnsupportedOperationException();
83dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
84dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu}
85