wrapper for conditionally passing picks onto the client application
[vamsas.git] / src / uk / ac / vamsas / client / simpleclient / SimpleClient.java
index 2858dd3..739cf58 100644 (file)
@@ -19,21 +19,23 @@ import java.util.Vector;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.vamsas.client.ClientHandle;
-import org.vamsas.client.Events;
-import org.vamsas.client.IClient;
-import org.vamsas.client.IClientDocument;
-import org.vamsas.client.IObjectUpdate;
-import org.vamsas.client.InvalidSessionUrnException;
-import org.vamsas.client.SessionHandle;
-import org.vamsas.client.UserHandle;
-import org.vamsas.objects.core.ApplicationData;
-import org.vamsas.objects.core.Entry;
-import org.vamsas.objects.core.LockFile;
-import org.vamsas.objects.core.VamsasDocument;
-import org.vamsas.objects.utils.AppDataReference;
-import org.vamsas.objects.utils.ProvenanceStuff;
-import org.vamsas.objects.utils.document.VersionEntries;
+
+import uk.ac.vamsas.client.ClientHandle;
+import uk.ac.vamsas.client.Events;
+import uk.ac.vamsas.client.IClient;
+import uk.ac.vamsas.client.IClientDocument;
+import uk.ac.vamsas.client.IObjectUpdate;
+import uk.ac.vamsas.client.InvalidSessionUrnException;
+import uk.ac.vamsas.client.SessionHandle;
+import uk.ac.vamsas.client.UserHandle;
+import uk.ac.vamsas.client.picking.IPickManager;
+import uk.ac.vamsas.objects.core.ApplicationData;
+import uk.ac.vamsas.objects.core.Entry;
+import uk.ac.vamsas.objects.core.LockFile;
+import uk.ac.vamsas.objects.core.VamsasDocument;
+import uk.ac.vamsas.objects.utils.AppDataReference;
+import uk.ac.vamsas.objects.utils.ProvenanceStuff;
+import uk.ac.vamsas.objects.utils.document.VersionEntries;
 
 /**
  * @author jimp
@@ -74,12 +76,12 @@ public class SimpleClient implements IClient {
     _session = sess;
     this.user = user;
     this.client = client;
-    try {
+    //try {
       session = new SessionUrn(_session);
-    } catch (MalformedURLException e) {
+    /*} catch (MalformedURLException e) {
       log.error("Couldn't form a valid SessionUrn object!",e);
       throw new InvalidSessionUrnException(_session.toString());
-    }
+    }*/
   }
   /**
    * construct new session by importing objects from an existing vamsas document
@@ -109,7 +111,7 @@ public class SimpleClient implements IClient {
   /*
    * (non-Javadoc)
    * LATER: check that build substitution variables are correct
-   * @see org.vamsas.client.IClient#getAbout()
+   * @see uk.ac.vamsas.client.IClient#getAbout()
    */
   public String getAbout() {
     return new String("VORBA SimpleClient version $version$ build $build$");
@@ -118,7 +120,7 @@ public class SimpleClient implements IClient {
   /*
    * (non-Javadoc)
    * 
-   * @see org.vamsas.client.IClient#getSessionUrn()
+   * @see uk.ac.vamsas.client.IClient#getSessionUrn()
    */
   public String getSessionUrn() {
     return session.getSessionUrn();
@@ -127,7 +129,7 @@ public class SimpleClient implements IClient {
   /*
    * (non-Javadoc)
    * 
-   * @see org.vamsas.client.IClient#getSessionHandle()
+   * @see uk.ac.vamsas.client.IClient#getSessionHandle()
    */
   public SessionHandle getSessionHandle() {
     // TODO: eliminate SessionHandle ? need to refactor interfaces.
@@ -138,7 +140,7 @@ public class SimpleClient implements IClient {
   /*
    * (non-Javadoc)
    * 
-   * @see org.vamsas.client.IClient#getClientHandle()
+   * @see uk.ac.vamsas.client.IClient#getClientHandle()
    */
   public ClientHandle getClientHandle() {
     return client;
@@ -147,7 +149,7 @@ public class SimpleClient implements IClient {
   /*
    * (non-Javadoc)
    * 
-   * @see org.vamsas.client.IClient#getUserHandle()
+   * @see uk.ac.vamsas.client.IClient#getUserHandle()
    */
   public UserHandle getUserHandle() {
     return user;
@@ -174,7 +176,7 @@ public class SimpleClient implements IClient {
   
   /**
    * make all the PropertyChangeSupport objects for the
-   * events described in org.vamsas.client.Event
+   * events described in uk.ac.vamsas.client.Event
    * @return
    */
   private static Hashtable initHandlers() {
@@ -190,7 +192,7 @@ public class SimpleClient implements IClient {
   /*
    * (non-Javadoc)
    * 
-   * @see org.vamsas.client.IClient#addDocumentUpdateHandler(java.util.EventListener)
+   * @see uk.ac.vamsas.client.IClient#addDocumentUpdateHandler(java.util.EventListener)
    */
   public void addDocumentUpdateHandler(PropertyChangeListener evt) {
     if (handlers.containsKey(Events.DOCUMENT_UPDATE)) {
@@ -205,7 +207,7 @@ public class SimpleClient implements IClient {
   /*
    * (non-Javadoc)
    * 
-   * @see org.vamsas.client.IClient#finalizeClient()
+   * @see uk.ac.vamsas.client.IClient#finalizeClient()
    */
   public void finalizeClient() {
     // TODO: determine if this is last client in session
@@ -215,12 +217,13 @@ public class SimpleClient implements IClient {
     // if (handlers.containsKey(Events.CLIENT_FINALIZATION))
     // deregister listeners.
     // mark this instance as finalized
+    this._session.removeClient(this);
   }
   
   /*
    * (non-Javadoc)
    * 
-   * @see org.vamsas.client.IClient#getClientDocument()
+   * @see uk.ac.vamsas.client.IClient#getClientDocument()
    */
   public IClientDocument getClientDocument() throws IOException {
     if (cdocument!=null) {
@@ -263,7 +266,7 @@ public class SimpleClient implements IClient {
   /*
    * (non-Javadoc)
    * @throws Errors for invalid newdoc parameter
-   * @see org.vamsas.client.IClient#updateDocument(org.vamsas.client.IClientDocument)
+   * @see uk.ac.vamsas.client.IClient#updateDocument(uk.ac.vamsas.client.IClientDocument)
    */
   public void updateDocument(IClientDocument newdoc) {
     if (!(newdoc instanceof ClientDocument)) {
@@ -302,7 +305,7 @@ public class SimpleClient implements IClient {
   /*
    * (non-Javadoc)
    * 
-   * @see org.vamsas.client.IClient#storeDocument(java.io.File)
+   * @see uk.ac.vamsas.client.IClient#storeDocument(java.io.File)
    */
   public void storeDocument(File location) {
     
@@ -322,7 +325,7 @@ public class SimpleClient implements IClient {
   /*
    * (non-Javadoc)
    * 
-   * @see org.vamsas.client.IClient#addVorbaEventHandler(java.lang.String,
+   * @see uk.ac.vamsas.client.IClient#addVorbaEventHandler(java.lang.String,
    *      java.beans.PropertyChangeListener)
    */
   public void addVorbaEventHandler(String EventChain, PropertyChangeListener evt) {
@@ -336,7 +339,7 @@ public class SimpleClient implements IClient {
   }
   
   /* (non-Javadoc)
-   * @see org.vamsas.client.IClient#pollUpdate()
+   * @see uk.ac.vamsas.client.IClient#pollUpdate()
    */
   public void pollUpdate() {
     
@@ -361,7 +364,7 @@ public class SimpleClient implements IClient {
   }
   
   /* (non-Javadoc)
-   * @see org.vamsas.client.IClient#joinSession()
+   * @see uk.ac.vamsas.client.IClient#joinSession()
    */
   public void joinSession() throws Exception {
     // start the EventGenerator thread.
@@ -387,7 +390,7 @@ public class SimpleClient implements IClient {
   
   
   /* (non-Javadoc)
-   * @see org.vamsas.client.IClient#importDocument(java.io.File)
+   * @see uk.ac.vamsas.client.IClient#importDocument(java.io.File)
    */
   public void importDocument(File location) {
     // TODO LATER: implement SimpleClient.importDocument()
@@ -413,4 +416,20 @@ public class SimpleClient implements IClient {
     // TODO Auto-generated method stub
     
   }
+
+  /**
+   * retrieves the current VamsasSession to which belong the client
+   * @return the _session
+   */
+  protected VamsasSession get_session() {
+    return this._session;
+  }
+
+  /* (non-Javadoc)
+   * @see uk.ac.vamsas.client.IClient#getPickManager()
+   */
+  public IPickManager getPickManager() {
+    // TODO Auto-generated method stub
+    return null;
+  }
 }