blob: f8a78ab2e88178cae11013716451ad1aa031b70c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.ws.internal.explorer.platform.datamodel;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
public class ListManager
{
private int nextViewId_;
private Vector itemsList_;
private Hashtable itemsTable_;
public ListManager()
{
nextViewId_ = 0;
itemsList_ = new Vector();
itemsTable_ = new Hashtable();
}
private final void updateManager(ListElement element)
{
itemsTable_.put(String.valueOf(nextViewId_),element);
element.setViewId(nextViewId_);
nextViewId_++;
}
public final void add(ListElement element)
{
itemsList_.addElement(element);
updateManager(element);
}
public final void addWithCurrentViewId(ListElement element)
{
itemsList_.addElement(element);
itemsTable_.put(String.valueOf(element.getViewId()),element);
}
public final ListElement elementAt(int index)
{
return (ListElement)itemsList_.elementAt(index);
}
public final ListElement getElementWithViewId(int viewId)
{
return (ListElement)itemsTable_.get(String.valueOf(viewId));
}
public final void removeElementWithViewId(int viewId)
{
itemsTable_.remove(String.valueOf(viewId));
for (int i=0;i<itemsList_.size();i++)
{
ListElement listElement = elementAt(i);
if (listElement.getViewId() == viewId)
{
itemsList_.removeElementAt(i);
break;
}
}
}
public final void removeElementAt(int index)
{
ListElement listElement = (ListElement)elementAt(index);
itemsList_.removeElementAt(index);
itemsTable_.remove(String.valueOf(listElement.getViewId()));
}
public final void insertElementAt(ListElement element,int index)
{
itemsList_.insertElementAt(element,index);
updateManager(element);
}
public final Enumeration getListElements()
{
return itemsList_.elements();
}
public final void clear()
{
itemsList_.removeAllElements();
itemsTable_.clear();
}
public final ListManager copy(ListManager newListManager)
{
newListManager.clear();
for (int i=0;i<itemsList_.size();i++)
{
ListElement listElement = (ListElement)elementAt(i);
ListElement newListElement = new ListElement(listElement.getObject());
newListElement.setViewId(listElement.getViewId());
newListElement.setTargetViewToolInfo(listElement.getTargetNodeId(),listElement.getTargetToolId(),listElement.getTargetViewId());
newListManager.addWithCurrentViewId(newListElement);
}
newListManager.setNextViewId(nextViewId_);
return newListManager;
}
public final void setNextViewId(int nextViewId)
{
nextViewId_ = nextViewId;
}
public final int getNextViewId()
{
return nextViewId_;
}
}