basic ideas for per-object update interface
authorjprocter <jprocter@compbio.dundee.ac.uk>
Tue, 12 Dec 2006 23:49:50 +0000 (23:49 +0000)
committerjprocter <jprocter@compbio.dundee.ac.uk>
Tue, 12 Dec 2006 23:49:50 +0000 (23:49 +0000)
git-svn-id: https://svn.lifesci.dundee.ac.uk/svn/repository/trunk@249 be28352e-c001-0410-b1a7-c7978e42abec

src/org/vamsas/client/IClient.java
src/org/vamsas/client/IObjectUpdate.java [new file with mode: 0644]
src/org/vamsas/client/IVorbaIdFactory.java

index c73aaa4..aaf855f 100644 (file)
@@ -115,6 +115,15 @@ public interface IClient {
      */
     public void addVorbaEventHandler(String EventChain, PropertyChangeListener evt);
     /**
+     * Sets the update handler that will be called when any updates occur to objects of type rootObject.
+     * @param rootObject
+     * @param handler
+     */
+    public void setUpdateHandler(IObjectUpdate handler);
+    public IObjectUpdate getUpdateHandler(Class rootObject);
+    public void removeUpdateHandler(Class rootObject);
+    public IObjectUpdate[] getUpdateHandlers();
+    /**
      * client application calls this to force the 
      * Vorba client to check for updates immediately.
      *
diff --git a/src/org/vamsas/client/IObjectUpdate.java b/src/org/vamsas/client/IObjectUpdate.java
new file mode 100644 (file)
index 0000000..f725c3c
--- /dev/null
@@ -0,0 +1,26 @@
+package org.vamsas.client;\r
+\r
+/**\r
+ * Methods implemented by a Vamsas Application's Object Update handler\r
+ * @author vamsas\r
+ * Introduced November 2006 Vamsas Meeting\r
+ * TODO: verify this is sufficient for the per-object update event mechanism\r
+ */\r
+interface IObjectUpdate {\r
+  /**\r
+   * Called by the library to find out which vamsas document object this update handler is interested in\r
+   * @return class that extends org.vamsas.Vobject\r
+   */\r
+  Class getRootVobject();\r
+  /**\r
+   * Called to test if this handler is to be called for updates to any Vobjects below the Root Vobject in the vamsas document.\r
+   * @return false means IObjectUpdate.update(updated, cdoc) will only be called with instances of type getRootVobject(). \r
+   */\r
+  boolean handlesSubtreeUpdates();\r
+  /**\r
+   * Method called by Vamsas Client Library for all updated objects that the handler is registered for.\r
+   * @param updated\r
+   * @param cdoc\r
+   */\r
+  void update(org.vamsas.client.Vobject updated, org.vamsas.client.IClientDocument cdoc);\r
+}\r
index 3878592..f2364f0 100644 (file)
@@ -8,9 +8,10 @@ package org.vamsas.client;
 
 /**
  * @author jimp
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
+ * middleware interface for generating new VorbaId objects 
+ * for a particular vamsas client based on the current 
+ * session, user and client handle. Generally implemented 
+ * by instances of the vamsas library api only.
  */
 public interface IVorbaIdFactory {
   /**