package org.eclipse.uml2.diagram.sequence.internal.layout.model; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; /** * */ public class LmBracketsListSimple implements LmBracketsList { public Iterator iterator() { return myUnmodifableList.iterator(); } public int size() { return myList.size(); } public void reorderList(List oldIndexList) { if (myList.size() != oldIndexList.size()) { throw new RuntimeException("Wrong number of elements to replace"); //$NON-NLS-1$ } List newBracketsList = new ArrayList(myList.size()); for (Iterator it = oldIndexList.iterator(); it.hasNext(); ) { Integer oldIndex = (Integer) it.next(); int index = oldIndex.intValue(); newBracketsList.add(myList.get(index)); } myList.clear(); myList.addAll(newBracketsList); } public void add(LMLifeLineBracket lifeLineBracket) { myList.add(lifeLineBracket); } public void remove(LMLifeLineBracket lifeLineBracket) { boolean res = myList.remove(lifeLineBracket); if (!res) { throw new RuntimeException("Failed to remove bracket from list"); //$NON-NLS-1$ } } public boolean isEmpty() { return myList.isEmpty(); } public void removeAll() { myList.clear(); } public List getListView() { return myUnmodifableList; } private final List myList = new ArrayList(); private final List myUnmodifableList = Collections.unmodifiableList(myList); }