Adding a putAll method to ListOrderedMap as per COLLECTIONS-226 and Dave Meikle's patch
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/collections/trunk@637512 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
eb9cff359c
commit
1ef83170fe
|
@ -66,6 +66,7 @@ import org.apache.commons.collections.list.UnmodifiableList;
|
|||
*
|
||||
* @author Stephen Colebourne
|
||||
* @author Matt Benson
|
||||
* @author Dave Meikle
|
||||
*/
|
||||
public class ListOrderedMap
|
||||
extends AbstractMapDecorator
|
||||
|
@ -223,6 +224,21 @@ public class ListOrderedMap
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Puts the values contained in a supplied Map into the Map starting at
|
||||
* the specified index.
|
||||
*
|
||||
* @param index the index in the Map to start at.
|
||||
* @param map the Map containing the values to be added.
|
||||
*/
|
||||
public void putAll(int index, Map map) {
|
||||
for (Iterator it = map.entrySet().iterator(); it.hasNext();) {
|
||||
Map.Entry entry = (Map.Entry) it.next();
|
||||
put(index, entry.getKey(), entry.getValue());
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
public Object remove(Object key) {
|
||||
Object result = getMap().remove(key);
|
||||
insertOrder.remove(key);
|
||||
|
|
|
@ -299,6 +299,32 @@ public class TestListOrderedMap extends AbstractTestOrderedMap {
|
|||
assertEquals("One", lom.getValue(2));
|
||||
}
|
||||
|
||||
public void testPutAllWithIndex() {
|
||||
resetEmpty();
|
||||
ListOrderedMap lom = (ListOrderedMap) map;
|
||||
|
||||
// Create Initial Data
|
||||
lom.put("testInsert0", "testInsert0v");
|
||||
lom.put("testInsert1", "testInsert1v");
|
||||
lom.put("testInsert2", "testInsert2v");
|
||||
assertEquals("testInsert0v", lom.getValue(0));
|
||||
assertEquals("testInsert1v", lom.getValue(1));
|
||||
assertEquals("testInsert2v", lom.getValue(2));
|
||||
|
||||
// Create New Test Map and Add using putAll(int, Object, Object)
|
||||
Map values = new HashMap();
|
||||
values.put("NewInsert0", "NewInsert0v");
|
||||
values.put("NewInsert1", "NewInsert1v");
|
||||
lom.putAll(1, values);
|
||||
|
||||
// Perform Asserts
|
||||
assertEquals("testInsert0v", lom.getValue(0));
|
||||
assertEquals("NewInsert0v", lom.getValue(1));
|
||||
assertEquals("NewInsert1v", lom.getValue(2));
|
||||
assertEquals("testInsert1v", lom.getValue(3));
|
||||
assertEquals("testInsert2v", lom.getValue(4));
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
public void testValueList_getByIndex() {
|
||||
resetFull();
|
||||
|
|
Loading…
Reference in New Issue