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