public void testClone() { LinkedMap map = new LinkedMap(10); map.put("1", "1"); Map cloned = (Map) map.clone(); assertEquals(map.size(), cloned.size()); assertSame(map.get("1"), cloned.get("1")); }
/** * Ensures that the {@link #nameMap} and {@link #entries} map are * modifiable. */ @SuppressWarnings("unchecked") private void ensureModifiable() { if (nameMap == Collections.EMPTY_MAP) { nameMap = new HashMap<Name, Object>(); entries = new LinkedMap(); } else if (shared) { entries = (LinkedMap) entries.clone(); nameMap = new HashMap<Name, Object>(nameMap); for (Map.Entry<Name, Object> entry : nameMap.entrySet()) { Object value = entry.getValue(); if (value instanceof List<?>) { entry.setValue(new ArrayList<ChildNodeEntry>( (List<ChildNodeEntry>) value)); } } shared = false; } }
/** * Ensures that the {@link #nameMap} and {@link #entries} map are * modifiable. */ @SuppressWarnings("unchecked") private void ensureModifiable() { if (nameMap == Collections.EMPTY_MAP) { nameMap = new HashMap<Name, Object>(); entries = new LinkedMap(); } else if (shared) { entries = (LinkedMap) entries.clone(); nameMap = new HashMap<Name, Object>(nameMap); for (Map.Entry<Name, Object> entry : nameMap.entrySet()) { Object value = entry.getValue(); if (value instanceof List<?>) { entry.setValue(new ArrayList<ChildNodeEntry>( (List<ChildNodeEntry>) value)); } } shared = false; } }