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
|
}
|