From a5e94bc1f0922864c8f9e0466069464ae52e2d34 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Wed, 27 Jan 2010 08:41:27 +0000
Subject: [PATCH] SE-191 Refactoring: introducing DataStoreServiceTranslator

SVN: 14477
---
 .../openbis/generic/server/CommonServer.java  | 26 +-------
 .../DataStoreServiceTranslator.java           | 60 +++++++++++++++++++
 2 files changed, 62 insertions(+), 24 deletions(-)
 create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreServiceTranslator.java

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
index 9e641ccef37..31827618e48 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
@@ -163,6 +163,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.translator.AttachmentTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.translator.AuthorizationGroupTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.translator.DataSetTypeTranslator;
+import ch.systemsx.cisd.openbis.generic.shared.translator.DataStoreServiceTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.translator.DtoConverters;
 import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator;
@@ -1593,36 +1594,13 @@ public final class CommonServer extends AbstractCommonServer<ICommonServer> impl
         {
             if (service.getKind() == dataStoreServiceKind)
             {
-                result.add(convert(service));
+                result.add(DataStoreServiceTranslator.translate(service));
             }
         }
         Collections.sort(result);
         return result;
     }
 
-    private static DatastoreServiceDescription convert(DataStoreServicePE service)
-    {
-        String[] datasetTypeCodes = extractCodes(service.getDatasetTypes());
-        String dssCode = service.getDataStore().getCode();
-        DatastoreServiceDescription dssDescription =
-                new DatastoreServiceDescription(service.getKey(), service.getLabel(),
-                        datasetTypeCodes, dssCode);
-        dssDescription.setDownloadURL(service.getDataStore().getDownloadUrl());
-        return dssDescription;
-    }
-
-    private static String[] extractCodes(Set<DataSetTypePE> datasetTypes)
-    {
-        String[] codes = new String[datasetTypes.size()];
-        int i = 0;
-        for (DataSetTypePE datasetType : datasetTypes)
-        {
-            codes[i] = datasetType.getCode();
-            i++;
-        }
-        return codes;
-    }
-
     public TableModel createReportFromDatasets(String sessionToken,
             DatastoreServiceDescription serviceDescription, List<String> datasetCodes)
     {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreServiceTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreServiceTranslator.java
new file mode 100644
index 00000000000..cac64364708
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreServiceTranslator.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2010 ETH Zuerich, CISD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ch.systemsx.cisd.openbis.generic.shared.translator;
+
+import java.util.Set;
+
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatastoreServiceDescription;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetTypePE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServicePE;
+
+/**
+ * Translator for {@link DataStoreServicePE} into {@link DatastoreServiceDescription}.
+ *
+ * @author Franz-Josef Elmer
+ */
+public class DataStoreServiceTranslator
+{
+    public static DatastoreServiceDescription translate(DataStoreServicePE service)
+    {
+        String[] datasetTypeCodes = extractCodes(service.getDatasetTypes());
+        String dssCode = service.getDataStore().getCode();
+        DatastoreServiceDescription dssDescription =
+                new DatastoreServiceDescription(service.getKey(), service.getLabel(),
+                        datasetTypeCodes, dssCode);
+        dssDescription.setDownloadURL(service.getDataStore().getDownloadUrl());
+        return dssDescription;
+    }
+
+    private static String[] extractCodes(Set<DataSetTypePE> datasetTypes)
+    {
+        String[] codes = new String[datasetTypes.size()];
+        int i = 0;
+        for (DataSetTypePE datasetType : datasetTypes)
+        {
+            codes[i] = datasetType.getCode();
+            i++;
+        }
+        return codes;
+    }
+
+    
+    private DataStoreServiceTranslator()
+    {
+    }
+
+}
-- 
GitLab