From ec10ca212b3ca610d09d8a4630aa9bf8a5d19c98 Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Tue, 11 May 2010 08:12:23 +0000
Subject: [PATCH] LMS-1505 Added methods to QueryAPI to support getting the
 session token and creating a facade with an existing session token.

SVN: 15885
---
 .../query/client/api/v1/FacadeFactory.java       | 13 ++++++++++++-
 .../query/client/api/v1/IQueryApiFacade.java     |  9 +++++++--
 .../query/client/api/v1/QueryApiFacade.java      | 16 ++++++++++------
 3 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/FacadeFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/FacadeFactory.java
index 3d4fb9bfb99..df9647dc160 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/FacadeFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/FacadeFactory.java
@@ -22,7 +22,7 @@ import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.IQueryApiServer;
 
 /**
  * Factory of {@link IQueryApiFacade}.
- *
+ * 
  * @author Franz-Josef Elmer
  */
 public class FacadeFactory
@@ -44,4 +44,15 @@ public class FacadeFactory
         }
         return new QueryApiFacade(service, sessionToken);
     }
+
+    /**
+     * Creates a facade for specified url and sessionToken.
+     */
+    public static IQueryApiFacade create(String serverURL, String sessionToken)
+    {
+        IQueryApiServer service =
+                HttpInvokerUtils.createServiceStub(IQueryApiServer.class, serverURL
+                        + ResourceNames.QUERY_PLUGIN_SERVER_URL, SERVER_TIMEOUT_MIN);
+        return new QueryApiFacade(service, sessionToken);
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/IQueryApiFacade.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/IQueryApiFacade.java
index 5ac27c07f93..43ad4e93e24 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/IQueryApiFacade.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/IQueryApiFacade.java
@@ -24,11 +24,16 @@ import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryTableModel;
 
 /**
  * Facade for openBIS query service.
- *
+ * 
  * @author Franz-Josef Elmer
  */
 public interface IQueryApiFacade
 {
+    /**
+     * Return the session token for the logged-in user.
+     */
+    public String getSessionToken();
+
     /**
      * Lists all queries the user has access rights.
      */
@@ -43,5 +48,5 @@ public interface IQueryApiFacade
      * Logs current user out.
      */
     public void logout();
-    
+
 }
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/QueryApiFacade.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/QueryApiFacade.java
index 6a6c2937f31..a4c4786d579 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/QueryApiFacade.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/QueryApiFacade.java
@@ -24,31 +24,35 @@ import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryDescription;
 import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryTableModel;
 
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
 class QueryApiFacade implements IQueryApiFacade
 {
     private final IQueryApiServer service;
+
     private final String sessionToken;
-    
+
     QueryApiFacade(IQueryApiServer service, String sessionToken)
     {
         this.service = service;
         this.sessionToken = sessionToken;
     }
-    
+
+    public String getSessionToken()
+    {
+        return sessionToken;
+    }
+
     public void logout()
     {
         service.logout(sessionToken);
     }
-    
+
     public List<QueryDescription> listQueries()
     {
         return service.listQueries(sessionToken);
     }
-    
+
     public QueryTableModel executeQuery(long queryID, Map<String, String> parameterBindings)
     {
         return service.executeQuery(sessionToken, queryID, parameterBindings);
-- 
GitLab