View Javadoc

1   package sk.upjs.intrak.jorge;
2   
3   import java.util.ArrayList;
4   import java.util.Collection;
5   import java.util.HashMap;
6   import java.util.Iterator;
7   import java.util.List;
8   import java.util.Map;
9   import java.util.Set;
10  import java.util.Map.Entry;
11  
12  /***
13   * Mapa dvojíc (<code>kľúč</code>, <code>hodnota</code>) obsahujúca
14   * rôzne informácie o danom dokumente, či kategórii. 
15   *
16   */
17  public class Metadata implements Map<String, Object>, Iterable<MetadataItem> {
18  	/***
19  	 * Delegovaná mapa.
20  	 */
21  	protected HashMap<String, Object> delegateMap = new HashMap<String, Object>();
22  
23  	/***
24  	 * Vloží do mapy metadátový pár.
25  	 * @param item
26  	 */
27  	public void put(MetadataItem item) {
28  		this.put(item.getName(), item.getValue());
29  	}
30  	
31  	/***
32  	 * Vloží do mapy metadáta z inej inštancie metadát.
33  	 */
34  	public void putAll(Metadata metadata) {
35  		for (MetadataItem item : metadata) {
36  			this.put(item);	
37  		}		
38  	}	
39  	
40  	/***
41  	 * Vráti iterátor navracajúci metadátové páry.
42  	 */
43  	public Iterator<MetadataItem> iterator() {
44  		Iterator<MetadataItem> iter = new Iterator<MetadataItem>() {
45  			Iterator<Entry<String, Object>> entrySetIterator = delegateMap.entrySet().iterator();
46  
47  			public boolean hasNext() {
48  				return entrySetIterator.hasNext();
49  			}
50  
51  			public MetadataItem next() {
52  				Entry<String, Object> entry = entrySetIterator.next();
53  				return new MetadataItem(entry.getKey(), entry.getValue());
54  			}
55  
56  			public void remove() {
57  				throw new UnsupportedOperationException();				
58  			}			
59  		};
60  		
61  		return iter;
62  	}
63  
64  	
65  	//**************************************** Delegované metódy
66  	
67  	/**
68  	 * @see java.util.HashMap#clear()
69  	 */
70  	public void clear() {
71  		this.delegateMap.clear();
72  	}
73  
74  	/***
75  	 * @see java.util.HashMap#clone()
76  	 */
77  	public Object clone() {
78  		return this.delegateMap.clone();
79  	}
80  
81  	/***
82  	 * @see java.util.HashMap#containsKey(java.lang.Object)
83  	 */
84  	public boolean containsKey(Object key) {
85  		return this.delegateMap.containsKey(key);
86  	}
87  
88  	/***
89  	 * @see java.util.HashMap#containsValue(java.lang.Object)
90  	 */
91  	public boolean containsValue(Object value) {
92  		return this.delegateMap.containsValue(value);
93  	}
94  
95  	/***
96  	 * @see java.util.HashMap#entrySet()
97  	 */
98  	public Set<Entry<String, Object>> entrySet() {
99  		return this.delegateMap.entrySet();
100 	}
101 
102 	/***
103 	 * @see java.util.HashMap#get(java.lang.Object)
104 	 */
105 	public Object get(Object key) {
106 		return this.delegateMap.get(key);
107 	}
108 
109 	/***
110 	 * @see java.util.HashMap#isEmpty()
111 	 */
112 	public boolean isEmpty() {
113 		return this.delegateMap.isEmpty();
114 	}
115 
116 	/***
117 	 * @see java.util.HashMap#keySet()
118 	 */
119 	public Set<String> keySet() {
120 		return this.delegateMap.keySet();
121 	}
122 
123 	/***
124 	 * @see java.util.HashMap#put(K, V)
125 	 */
126 	public Object put(String key, Object value) {
127 		return this.delegateMap.put(key, value);
128 	}
129 
130 	/***
131 	 * @see java.util.HashMap#putAll(java.util.Map)
132 	 */
133 	public void putAll(Map<? extends String, ? extends Object> m) {
134 		this.delegateMap.putAll(m);
135 	}
136 
137 	/***
138 	 * @see java.util.HashMap#remove(java.lang.Object)
139 	 */
140 	public Object remove(Object key) {
141 		return this.delegateMap.remove(key);
142 	}
143 
144 	/***
145 	 * @see java.util.HashMap#size()
146 	 */
147 	public int size() {
148 		return this.delegateMap.size();
149 	}
150 
151 	/***
152 	 * @see java.util.HashMap#values()
153 	 */
154 	public Collection<Object> values() {
155 		return this.delegateMap.values();
156 	}
157 		
158 }