Project

General

Profile

1
package eu.dnetlib.clients.index.model.impl;
2

    
3
import java.util.*;
4

    
5
import eu.dnetlib.clients.index.model.*;
6

    
7
/**
8
 * immutable decorator for an AnyMap.
9
 */
10
public class ImmutableAnyMapImpl implements AnyMap {
11

    
12
	/**
13
	 * The underlying anymap.
14
	 */
15
	private final AnyMap _anyMap;
16

    
17
	/**
18
	 * The underlying map, as immutable.
19
	 */
20
	private final Map<String, Any> _immutable;
21

    
22
	/**
23
	 */
24
	public ImmutableAnyMapImpl(AnyMap map) {
25
		_anyMap = map;
26
		_immutable = Collections.unmodifiableMap(map);
27
	}
28

    
29
	@Override
30
	public void add(String key, Any value) {
31
		throw new UnsupportedOperationException();
32
	}
33

    
34
	@Override
35
	public AnyMap asMap() {
36
		return _anyMap.asMap();
37
	}
38

    
39
	@Override
40
	public AnySeq asSeq() {
41
		return _anyMap.asSeq();
42
	}
43

    
44
	@Override
45
	public Value asValue() {
46
		return _anyMap.asValue();
47
	}
48

    
49
	/**
50
	 * @see Map#clear()
51
	 */
52
	@Override
53
	public void clear() {
54
		_immutable.clear();
55
	}
56

    
57
	/**
58
	 * @param key
59
	 * @return
60
	 * @see Map#containsKey(Object)
61
	 */
62
	@Override
63
	public boolean containsKey(Object key) {
64
		return _immutable.containsKey(key);
65
	}
66

    
67
	/**
68
	 * @param value
69
	 * @return
70
	 * @see Map#containsValue(Object)
71
	 */
72
	@Override
73
	public boolean containsValue(Object value) {
74
		return _immutable.containsValue(value);
75
	}
76

    
77
	/**
78
	 * @return
79
	 * @see Map#entrySet()
80
	 */
81
	@Override
82
	public Set<Map.Entry<String, Any>> entrySet() {
83
		return _immutable.entrySet();
84
	}
85

    
86
	/**
87
	 * @param o
88
	 * @return
89
	 * @see Map#equals(Object)
90
	 */
91
	@Override
92
	public boolean equals(Object o) {
93
		return _immutable.equals(o);
94
	}
95

    
96
	/**
97
	 * @param key
98
	 * @return
99
	 * @see Map#get(Object)
100
	 */
101
	@Override
102
	public Any get(Object key) {
103
		return _immutable.get(key);
104
	}
105

    
106
	@Override
107
	public Boolean getBooleanValue(String key) {
108
		return _anyMap.getBooleanValue(key);
109
	}
110

    
111
	@Override
112
	public Date getDateTimeValue(String key) {
113
		return _anyMap.getDateTimeValue(key);
114
	}
115

    
116
	@Override
117
	public Date getDateValue(String key) {
118
		return _anyMap.getDateValue(key);
119
	}
120

    
121
	@Override
122
	public Double getDoubleValue(String key) {
123
		return _anyMap.getDoubleValue(key);
124
	}
125

    
126
	@Override
127
	public DataFactory getFactory() {
128
		return _anyMap.getFactory();
129
	}
130

    
131
	@Override
132
	public Long getLongValue(String key) {
133
		return _anyMap.getLongValue(key);
134
	}
135

    
136
	@Override
137
	public AnyMap getMap(String key) {
138
		return _anyMap.getMap(key);
139
	}
140

    
141
	@Override
142
	public AnyMap getMap(String key, boolean create) {
143
		return _anyMap.getMap(key, create);
144
	}
145

    
146
	@Override
147
	public AnySeq getSeq(String key) {
148
		return _anyMap.getSeq(key);
149
	}
150

    
151
	@Override
152
	public AnySeq getSeq(String key, boolean create) {
153
		return _anyMap.getSeq(key, create);
154
	}
155

    
156
	@Override
157
	public String getStringValue(String key) {
158
		return _anyMap.getStringValue(key);
159
	}
160

    
161
	@Override
162
	public Value getValue(String key) {
163
		return _anyMap.getValue(key);
164
	}
165

    
166
	@Override
167
	public ValueType getValueType() {
168
		return _anyMap.getValueType();
169
	}
170

    
171
	/**
172
	 * @return
173
	 * @see Map#hashCode()
174
	 */
175
	@Override
176
	public int hashCode() {
177
		return _immutable.hashCode();
178
	}
179

    
180
	@Override
181
	public boolean isBoolean() {
182
		return _anyMap.isBoolean();
183
	}
184

    
185
	@Override
186
	public boolean isDate() {
187
		return _anyMap.isDate();
188
	}
189

    
190
	@Override
191
	public boolean isDateTime() {
192
		return _anyMap.isDateTime();
193
	}
194

    
195
	@Override
196
	public boolean isDouble() {
197
		return _anyMap.isDouble();
198
	}
199

    
200
	@Override
201
	public boolean isEmpty() {
202
		return _immutable.isEmpty();
203
	}
204

    
205
	@Override
206
	public boolean isLong() {
207
		return _anyMap.isLong();
208
	}
209

    
210
	@Override
211
	public boolean isMap() {
212
		return _anyMap.isMap();
213
	}
214

    
215
	@Override
216
	public boolean isNumber() {
217
		return _anyMap.isNumber();
218
	}
219

    
220
	@Override
221
	public boolean isSeq() {
222
		return _anyMap.isSeq();
223
	}
224

    
225
	@Override
226
	public boolean isString() {
227
		return _anyMap.isString();
228
	}
229

    
230
	@Override
231
	public boolean isValue() {
232
		return _anyMap.isValue();
233
	}
234

    
235
	@Override
236
	public Iterator<Any> iterator() {
237
		return _anyMap.iterator();
238
	}
239

    
240
	@Override
241
	public Set<String> keySet() {
242
		return _immutable.keySet();
243
	}
244

    
245
	/**
246
	 * @param key
247
	 * @param value
248
	 * @return
249
	 * @see Map#put(Object, Object)
250
	 */
251
	@Override
252
	public Any put(String key, Any value) {
253
		throw new UnsupportedOperationException();
254
	}
255

    
256
	@Override
257
	public Any put(String key, Boolean value) {
258
		throw new UnsupportedOperationException();
259
	}
260

    
261
	@Override
262
	public Any put(String key, Number value) {
263
		throw new UnsupportedOperationException();
264
	}
265

    
266
	@Override
267
	public Any put(String key, String value) {
268
		throw new UnsupportedOperationException();
269
	}
270

    
271
	@Override
272
	public void putAll(Map<? extends String, ? extends Any> m) {
273
		throw new UnsupportedOperationException();
274
	}
275

    
276
	/**
277
	 * @param key
278
	 * @return
279
	 * @see Map#remove(Object)
280
	 */
281
	@Override
282
	public Any remove(Object key) {
283
		throw new UnsupportedOperationException();
284
	}
285

    
286
	@Override
287
	public int size() {
288
		return _immutable.size();
289
	}
290

    
291
	/**
292
	 * @return
293
	 * @see Map#values()
294
	 */
295
	@Override
296
	public Collection<Any> values() {
297
		return _immutable.values();
298
	}
299

    
300
}
(6-6/7)