summaryrefslogtreecommitdiff
path: root/isoparser/src/main/java/com/coremedia/iso/boxes/mdat/DummyMap.java
blob: ab960232c61c44efe5b93d01e52c022a3aeadbe8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package com.coremedia.iso.boxes.mdat;

import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 * A SortedSet that contains just one value.
 */
public class DummyMap<K, V> implements Map<K, V> {
    HashSet<K> keys = new HashSet<K>();
    V value;

    public DummyMap(V value) {
        this.value = value;
    }

    public Comparator<? super K> comparator() {
        return null;  // I don't have any
    }

    public void addKeys(K[] keys) {
        Collections.addAll(this.keys, keys);

    }

    public int size() {
        return keys.size();
    }

    public boolean isEmpty() {
        return keys.isEmpty();
    }

    public boolean containsKey(Object key) {
        return keys.contains(key);
    }

    public boolean containsValue(Object value) {
        return this.value == value;
    }

    public V get(Object key) {
        return keys.contains(key) ? value : null;
    }

    public V put(K key, V value) {
        assert this.value == value;
        keys.add(key);
        return this.value;
    }

    public V remove(Object key) {
        V v = get(key);
        keys.remove(key);
        return v;
    }

    public void putAll(Map<? extends K, ? extends V> m) {
        for (K k : m.keySet()) {
            assert m.get(k) == value;
            this.keys.add(k);
        }
    }

    public void clear() {
        keys.clear();
    }

    public Set<K> keySet() {
        return keys;
    }

    public Collection<V> values() {
        throw new UnsupportedOperationException();
    }

    public Set<Entry<K, V>> entrySet() {
        throw new UnsupportedOperationException();
    }
}