package context.arch.widget;
import java.util.Vector;
/**
* This class maintains a list of widget handles, allows additions, removals and
* updates to individual handles.
*
* @see context.arch.widget.WidgetHandle
*/
public class WidgetHandles extends Vector<WidgetHandle> {
private static final long serialVersionUID = 1773558607106338778L;
// protected Hashtable hash; // not being used
/**
* Basic empty constructor
*/
public WidgetHandles() {
super();
}
/**
* Adds a widgethandle to the widgethandle list
*
* @param id ID of the widget being subscribed to
* @param hostname Name of the widget's host computer
* @param port Port number of the widget
*/
public synchronized void addWidgetHandle(String id, String hostname, int port) {
addElement(new WidgetHandle(id, hostname, port));
}
/**
* Adds a widgethandle to the widgethandle list
*
* @param handle WidgetHandle to add
*/
public synchronized void addWidgetHandle(WidgetHandle handle) {
addElement(handle);
}
/**
* Adds a set of widgethandles to the widgethandle list
*
* @param handles WidgetHandles to add to the list
*/
public synchronized void addWidgetHandles(WidgetHandles handles) {
if (handles != null) {
for (int i=0; i<handles.numWidgetHandles(); i++) {
addElement(handles.getWidgetHandleAt(i));
}
}
}
/**
* Returns the WidgetHandle at the given index. Do not assume that a given
* WidgetHandle's index will stay constant throughout its lifetime. When
* other WidgetHandles are added and removed, a given widgetHandle's index
* may change.
*
* @param index index value of the WidgetHandle object to retrieve
*/
public synchronized WidgetHandle getWidgetHandleAt(int index) {
return (WidgetHandle)(elementAt(index));
}
/**
* Returns the number of widgetHandles in the list
*/
public synchronized int numWidgetHandles() {
return size();
}
}