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 package info.magnolia.dam.asset.model;
35
36 import java.util.Collection;
37 import java.util.Map;
38 import java.util.Set;
39
40 import org.apache.commons.lang3.StringUtils;
41 import org.slf4j.Logger;
42 import org.slf4j.LoggerFactory;
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 public class AssetMap implements Map<String, Object> {
64
65 private final static Logger log = LoggerFactory.getLogger(AssetMap.class);
66
67 private final Map<String, Object> assetMap;
68
69 public AssetMap(Map<String, Object> assetMap) {
70 this.assetMap = assetMap;
71 }
72
73 @Override
74 public boolean containsKey(Object key) {
75
76 String strKey = convertKey(key);
77 if (!isValidKey(strKey)) {
78 return false;
79 }
80 return assetMap.containsKey(strKey);
81 }
82
83 @Override
84 public Object get(Object key) {
85 Object value = StringUtils.EMPTY;
86 if (!containsKey(key)) {
87 return value;
88 }
89 String strKey = convertKey(key);
90
91 return assetMap.get(strKey);
92 }
93
94 @Override
95 public Set<String> keySet() {
96 return assetMap.keySet();
97 }
98
99 @Override
100 public int size() {
101 return keySet().size();
102 }
103
104 private boolean isValidKey(String strKey) {
105 return !StringUtils.isBlank(strKey);
106 }
107
108 private String convertKey(Object key) {
109 if (key == null) {
110 return null;
111 }
112 try {
113 return (String) key;
114 } catch (ClassCastException e) {
115 log.debug("Invalid key. Expected String, but got {}.", key.getClass().getName());
116 }
117 return null;
118 }
119
120
121 @Override
122 public Collection<Object> values() {
123 throw new UnsupportedOperationException("Value collections are not supported");
124 }
125
126 @Override
127 public Set<java.util.Map.Entry<String, Object>> entrySet() {
128 throw new UnsupportedOperationException("Entry collections are not supported");
129 }
130
131 @Override
132 public boolean containsValue(Object arg0) {
133 throw new UnsupportedOperationException("Value checks are not supported");
134 }
135
136 @Override
137 public boolean isEmpty() {
138
139 return false;
140 }
141
142 @Override
143 public void clear() {
144
145 }
146
147 @Override
148 public Object put(String arg0, Object arg1) {
149
150 return null;
151 }
152
153 @Override
154 public void putAll(Map<? extends String, ? extends Object> arg0) {
155
156 }
157
158 @Override
159 public Object remove(Object arg0) {
160
161 return null;
162 }
163
164 }
165