/* * Created on 12-Sep-2005 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package org.vamsas.client; import java.util.Hashtable; /** * A VorbaIdFactory is constructed by an IClient instance. * It guarantees that any new VorbaId objects are unique * within the VAMSAS session. * * @author jimp */ public abstract class VorbaIdFactory implements IVorbaIdFactory { protected Hashtable extantids=null; /** * construct a new id appropriate for this client in the vamsas session. * * @return valid VorbaId for session, or null if VorbaIdFactory not configured * correctly. */ public abstract VorbaId makeVorbaId(object vobject); /** * internal method to access the protected VorbaId object constructor * This shennanigan is to prevent casual generation of VorbaIds * (which may destroy the integrity of a Vamsas Document!) * @param id * @return new VorbaId object */ protected VorbaId newId(String id) { return VorbaId.newId(id); } /** * Called by VorbaXmlBinder so the record of newly unmarshalled object Ids * is accessible to the Document's VorbaIdFactory instance. * @param idtable */ protected void setNewIdHash(Hashtable idtable) { extantids = idtable; } /** * TODO: decide if these are needed. * * @param sessionHandle */ protected abstract void setSession(SessionHandle sessionhandle); public abstract SessionHandle getSessionHandle(); protected abstract void setClient(ClientHandle appHandle); public abstract ClientHandle getClientHandle(); protected abstract void setUser(UserHandle userHandle); public abstract UserHandle getUserHandle(); }