@Override public Object get(Object key) { if( key == null ) { return null; } for( StringKeyObjectValueEntry entry : entries ) { if( key != null && key.equals(entry.getKey())) { return deserializeObject(entry.getBytes(), entry.getClassName(), key.toString()); } } return null; }
@Override public Object remove(Object key) { Iterator<StringKeyObjectValueEntry> iter = entries.iterator(); while( iter.hasNext() ) { StringKeyObjectValueEntry entry = iter.next(); String entryKey = entry.getKey(); if( key.equals(entryKey) ) { iter.remove(); return deserializeObject(entry.getBytes(), entry.getClassName(), entry.getKey()); } } return null; }
@Override public Collection<Object> values() { List<Object> values = new ArrayList<Object>(); for( StringKeyObjectValueEntry entry : entries ) { Object newVal = deserializeObject(entry.getBytes(), entry.getClassName(), entry.getKey()); values.add(newVal); } return values; }
@Override public Map<String, Object> unmarshal(StringKeyObjectValueMap xmlMap) { if( xmlMap == null ) { return null; } Map<String, Object> map = new HashMap<String, Object>(); for( StringKeyObjectValueEntry xmlEntry : xmlMap.entries ) { String key = xmlEntry.getKey(); Object value = deserializeObject(xmlEntry.getBytes(), xmlEntry.getClassName(), key); map.put(key, value); } return map; }
@Override public boolean containsValue(Object value) { if( value == null ) { return false; } for( StringKeyObjectValueEntry entry : entries ) { Object entryVal = deserializeObject(entry.getBytes(), entry.getClassName(), entry.getKey()); if( value.equals(entryVal) ) { return true; } } return false; }
@Override public Set<java.util.Map.Entry<String, Object>> entrySet() { Set<java.util.Map.Entry<String, Object>> entrySet = new HashSet<Map.Entry<String,Object>>(); for( StringKeyObjectValueEntry entry : entries ) { Object newVal = deserializeObject(entry.getBytes(), entry.getClassName(), entry.getKey()); String key = entry.getKey(); Entry<String, Object> newEntry = new EntryImpl(key, newVal); entrySet.add(newEntry); } return entrySet; }