package context.arch.util; import context.arch.comm.DataObject; import java.util.Hashtable; import java.util.Enumeration; import java.util.Vector; /** * This class maintains a list of ContextUser objects. * * @see context.arch.util.ContextUser */ public class ContextUsers extends Hashtable<String, ContextUser> { private static final long serialVersionUID = -4451219100108689011L; /** * Tag for version */ public static final String VERSION = "VERSION"; /** * Tag for context users */ public static final String CONTEXT_USERS = "CONTEXTUSERS"; /** * Tag for context user */ public static final String CONTEXT_USER = "CONTEXTUSER"; /** * Tag for description */ public static final String DESCRIPTION = "description"; /** * Tag for user's name */ public static final String REALNAME = "username"; /** * Tag for user's email address */ public static final String EMAIL = "email"; /** * Tag for user's organization */ public static final String ORGANIZATION = "organization"; /** * Tag for user's iButton id */ public static final String IBUTTONID = "iButtonID"; private String version = null; /** * Basic empty constructor */ public ContextUsers() { super(); } /** * Constructor that creates a ContextUser object from a * DataObject. * * @param data DataObject containing context user information */ public ContextUsers(DataObject data) { super(); DataObject cu = data.getDataObject(CONTEXT_USERS); Vector<DataObject> v = cu.getChildren(); for (int i=0; i<v.size(); i++) { DataObject d = (DataObject)v.elementAt(i); if (d.getName().equals(Constants.VERSION)) { version = (String)d.getDataObjectFirstValue(VERSION); } else if (d.getName().equals(CONTEXT_USER)) { String description = (String)d.getDataObjectFirstValue(DESCRIPTION); String name = (String)d.getDataObjectFirstValue(REALNAME); String email = (String)d.getDataObjectFirstValue(EMAIL); String organization = (String)d.getDataObjectFirstValue(ORGANIZATION); String ibuttonid = (String)d.getDataObjectFirstValue(IBUTTONID); addContextUser(new ContextUser(description,name,email,organization,ibuttonid)); } } } /** * Adds a context user to the list * * @param user Context user to add */ public synchronized void addContextUser(ContextUser user) { put(user.getDescription(), user); } /** * Retrieves a context user from the list * * @param description Description to use to retrieve the context user * @return ContextUser object with the corresponding description */ public synchronized ContextUser getContextUser(String description) { return (ContextUser)get(description); } /** * Returns an enumeration of the context users * * @return Enumeration of the context users */ public synchronized Enumeration<ContextUser> getEnumeration() { return elements(); } /** * Returns the version number * * @return version number for this list */ public String getVersion() { return version; } }