4 package org.vamsas.client;
6 import java.util.Hashtable;
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10 import org.vamsas.objects.core.VAMSAS;
13 * skeleton abstract class to allow client implementations
14 * access to vamsas.client.Vobject registry mechanism.
16 public abstract class ClientDocument implements IClientDocument {
17 static Log log = LogFactory.getLog(ClientDocument.class);
20 * collection of org.vamsas.client.Vobject references
22 protected Hashtable vamsasObjects;
23 protected IVorbaIdFactory vorbafactory;
25 protected ClientDocument(Hashtable objects, IVorbaIdFactory factory) {
26 vamsasObjects = objects;
27 vorbafactory = factory;
31 * @see IClientHandle.registerObject(Vobject unregistered)
33 protected VorbaId _registerObject(Vobject unregistered) {
34 // be ultra safe here because the user may be trying to mix different factories
35 if (unregistered.__vorba==null)
36 unregistered.__vorba = vorbafactory;
38 if (unregistered.__vorba!=vorbafactory) {
39 // LATER: decide if this is allowed - it isn't for the moment.
40 log.error("Attempt to overwrite info in a registered vorba Vobject (under a different IVorbaIdFactory) ! - Implementation fix needed.");
43 // probably didn't need to call registerObject.
44 log.debug("Redundant call to registerObject");
46 // TODO: add default provenance.
47 unregistered.__ensure_instance_ids(); // call cascade method here : TODO: decide if we need to do this.
48 return unregistered.getVorbaId();