From c031df2edd17056e9f3e8d6727a724b9c0f9ca59 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Wed, 7 Jul 2010 10:02:39 +0000
Subject: [PATCH] LMS-1622 IDataSourceProvider modified

SVN: 16917
---
 ...ataStoreServerBasedDataSourceProvider.java | 29 ++++---------------
 .../dataaccess/IDataSourceProvider.java       | 21 ++++----------
 .../dataaccess/SingleDataSourceProvider.java  |  7 +----
 3 files changed, 13 insertions(+), 44 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProvider.java
index 71e2d220151..17a44647cd3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProvider.java
@@ -35,7 +35,7 @@ import ch.systemsx.cisd.dbmigration.SimpleDatabaseConfigurationContext;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
 
 /**
- * 
+ * Data source provider based on configuration per Data Store Server.
  *
  * @author Franz-Josef Elmer
  */
@@ -68,7 +68,9 @@ public class DataStoreServerBasedDataSourceProvider implements IDataSourceProvid
         {
             String key = sectionProperties.getKey().toUpperCase();
             Properties properties = sectionProperties.getProperties();
-            dataSources.put(key, create(properties));
+            SimpleDatabaseConfigurationContext context =
+                    new SimpleDatabaseConfigurationContext(properties);
+            dataSources.put(key, context.getDataSource());
         }
     }
 
@@ -79,10 +81,10 @@ public class DataStoreServerBasedDataSourceProvider implements IDataSourceProvid
         {
             throw new UserFailureException("Unknown data set " + dataSetCode);
         }
-        return getDataSource(dataSet.getDataStore().getCode());
+        return getDataSourceByDataSetCode(dataSet.getDataStore().getCode(), technology);
     }
     
-    private DataSource getDataSource(String dssCode)
+    public DataSource getDataSourceByDataStoreServerCode(String dssCode, String technology)
     {
         DataSource dataSource = dataSources.get(dssCode);
         if (dataSource == null)
@@ -93,23 +95,4 @@ public class DataStoreServerBasedDataSourceProvider implements IDataSourceProvid
         return dataSource;
     }
 
-    private DataSource create(Properties properties)
-    {
-        return new SimpleDatabaseConfigurationContext(properties).getDataSource();
-    }
-
-    public DataSource getDataSourceByExperimentPermID(String experimentPermID, String technology)
-    {
-        throw new IllegalArgumentException(
-                "Getting data source by experiment permID is not supported for technology '"
-                        + technology + "'.");
-    }
-
-    public DataSource getDataSourceBySamplePermID(String samplePermID, String technology)
-    {
-        throw new IllegalArgumentException(
-                "Getting data source by sample permID is not supported for technology '"
-                + technology + "'.");
-    }
-
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataSourceProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataSourceProvider.java
index a8caedc02e4..1029fe68dee 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataSourceProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataSourceProvider.java
@@ -22,7 +22,7 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException;
 
 /**
  * Interface for providing a {@link DataSource} for a technology specific database based on data set
- * code or epxeriment/sample permID.
+ * code or data store server code
  * 
  * @author Franz-Josef Elmer
  */
@@ -38,20 +38,11 @@ public interface IDataSourceProvider
     public DataSource getDataSourceByDataSetCode(String dataSetCode, String technology);
 
     /**
-     * Returns an appropriated data source for specified experiment permID and technology.
+     * Returns an appropriated data source for specified data store server code and technology.
      * 
-     * @throws IllegalArgumentException if getting data source by experiment permID isn't supported
-     *             for the specified technology.
-     * @throws UserFailureException if the specified experiment doesn't exist.
+     * @throws IllegalArgumentException if getting data source by data store server code isn't
+     *             supported for the specified technology.
+     * @throws UserFailureException if the specified data store server doesn't exist.
      */
-    public DataSource getDataSourceByExperimentPermID(String experimentPermID, String technology);
-
-    /**
-     * Returns an appropriated data source for specified sample permID and technology.
-     * 
-     * @throws IllegalArgumentException if getting data source by sample permID isn't supported
-     *             for the specified technology.
-     * @throws UserFailureException if the specified sample doesn't exist.
-     */
-    public DataSource getDataSourceBySamplePermID(String samplePermID, String technology);
+    public DataSource getDataSourceByDataStoreServerCode(String dssCode, String technology);
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/SingleDataSourceProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/SingleDataSourceProvider.java
index 7acc645f218..1d75b0428a3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/SingleDataSourceProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/SingleDataSourceProvider.java
@@ -42,12 +42,7 @@ public class SingleDataSourceProvider implements IDataSourceProvider
         return dataSource;
     }
 
-    public DataSource getDataSourceByExperimentPermID(String experimentPermID, String technology)
-    {
-        return dataSource;
-    }
-
-    public DataSource getDataSourceBySamplePermID(String samplePermID, String technology)
+    public DataSource getDataSourceByDataStoreServerCode(String dssCode, String technology)
     {
         return dataSource;
     }
-- 
GitLab