]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api/src/org/argeo/api/gcr/spi/AbstractContent.java
Introduce BytesUtils
[lgpl/argeo-commons.git] / org.argeo.api / src / org / argeo / api / gcr / spi / AbstractContent.java
1 package org.argeo.api.gcr.spi;
2
3 import java.util.AbstractMap;
4 import java.util.HashSet;
5 import java.util.Set;
6
7 import org.argeo.api.gcr.Content;
8
9 public abstract class AbstractContent extends AbstractMap<String, Object> implements Content {
10
11 @Override
12 public Set<Entry<String, Object>> entrySet() {
13 Set<Entry<String, Object>> result = new HashSet<>();
14 for (String key : keys()) {
15 Entry<String, Object> entry = new Entry<String, Object>() {
16
17 @Override
18 public String getKey() {
19 return key;
20 }
21
22 @Override
23 public Object getValue() {
24 // TODO check type
25 return get(key, Object.class);
26 }
27
28 @Override
29 public Object setValue(Object value) {
30 throw new UnsupportedOperationException();
31 }
32
33 };
34 result.add(entry);
35 }
36 return result;
37 }
38
39 protected abstract Iterable<String> keys();
40
41 /*
42 * UTILITIES
43 */
44 protected boolean isDefaultAttrTypeRequested(Class<?> clss) {
45 // check whether clss is Object.class
46 return clss.isAssignableFrom(Object.class);
47 }
48 }