X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Forg%2Fvamsas%2Fclient%2FClientDocument.java;h=0bbdebc05f8753bbdecef512773b8d3ca6bf6a02;hb=d4199f5cfea3a90baeb956c4beaa2f3e8c0597c6;hp=4a78bd4a4ce74ce8a177cdb5eebfa775ccd03f34;hpb=bdf67676f72c1ec0730e07906ae52391d26bbd85;p=vamsas.git diff --git a/src/org/vamsas/client/ClientDocument.java b/src/org/vamsas/client/ClientDocument.java index 4a78bd4..0bbdebc 100644 --- a/src/org/vamsas/client/ClientDocument.java +++ b/src/org/vamsas/client/ClientDocument.java @@ -5,64 +5,46 @@ package org.vamsas.client; import java.util.Hashtable; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.vamsas.objects.core.VAMSAS; + /** - * @author jimp - * Contains a collection of vamsas objects and reference - * to a specified ClientHandle's information. + * skeleton abstract class to allow client implementations + * access to vamsas.client.Vobject registry mechanism. */ -public class ClientDocument implements IClientDocument { - /* (non-Javadoc) - * @see org.vamsas.client.IClientDocument#getApplicationData() - */ - public byte[] getApplicationData() { - // TODO Auto-generated method stub - return null; - } - /* (non-Javadoc) - * @see org.vamsas.client.IClientDocument#getObject(org.vamsas.client.VorbaId) - */ - public object getObject(VorbaId id) { - // TODO Auto-generated method stub - return null; - } - /* (non-Javadoc) - * @see org.vamsas.client.IClientDocument#getObjects(org.vamsas.client.VorbaId[]) - */ - public object[] getObjects(VorbaId[] ids) { - // TODO Auto-generated method stub - return null; - } - /* (non-Javadoc) - * @see org.vamsas.client.IClientDocument#getVamsasRoots() - */ - public object[] getVamsasRoots() { - // TODO Auto-generated method stub - return null; - } - /* (non-Javadoc) - * @see org.vamsas.client.IClientDocument#registerObject(org.vamsas.client.object) - */ - public VorbaId registerObject(object unregistered) { - // TODO Auto-generated method stub - return null; - } - /* (non-Javadoc) - * @see org.vamsas.client.IClientDocument#registerObjects(org.vamsas.client.object[]) - */ - public VorbaId[] registerObjects(object[] unregistered) { - // TODO Auto-generated method stub - return null; - } - /* (non-Javadoc) - * @see org.vamsas.client.IClientDocument#setApplicationData(byte[]) - */ - public void setApplicationData(byte[] newData) { - // TODO Auto-generated method stub - +public abstract class ClientDocument implements IClientDocument { + static Log log = LogFactory.getLog(ClientDocument.class); + + /** + * collection of org.vamsas.client.Vobject references + */ + protected Hashtable vamsasObjects; + protected IVorbaIdFactory vorbafactory; + + protected ClientDocument(Hashtable objects, IVorbaIdFactory factory) { + vamsasObjects = objects; + vorbafactory = factory; } + /** - * collection of org.vamsas.client.objects - */ - Hashtable VamsasObjects; - byte[] appData; + * @see IClientHandle.registerObject(Vobject unregistered) + */ + protected VorbaId _registerObject(Vobject unregistered) { + // be ultra safe here because the user may be trying to mix different factories + if (unregistered.__vorba==null) + unregistered.__vorba = vorbafactory; + else + if (unregistered.__vorba!=vorbafactory) { + // LATER: decide if this is allowed - it isn't for the moment. + log.error("Attempt to overwrite info in a registered vorba Vobject (under a different IVorbaIdFactory) ! - Implementation fix needed."); + return null; + } else { + // probably didn't need to call registerObject. + log.debug("Redundant call to registerObject"); + } + // TODO: add default provenance. + unregistered.__ensure_instance_ids(); // call cascade method here : TODO: decide if we need to do this. + return unregistered.getVorbaId(); + } }