From 2d62156eb710ab3b14c124b57938d19568ed73a8 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Mon, 29 Sep 2014 08:21:07 +0000
Subject: [PATCH] SSDM-949: Introducing class SearchDomain and using it in
 SearchDomainSearchResult.

SVN: 32503
---
 .../dss/generic/server/DataStoreService.java  |  5 +-
 .../v2/sequencedatabases/EchoDatabase.java    |  7 +--
 .../server/business/bo/DataSetTableTest.java  |  5 +-
 .../shared/api/v1/dto/SearchDomain.java       | 51 +++++++++++++++++++
 .../api/v1/dto/SearchDomainSearchResult.java  |  6 +--
 5 files changed, 66 insertions(+), 8 deletions(-)
 create mode 100644 openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SearchDomain.java

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
index e48e373ea6f..ce1ac7564c7 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
@@ -63,6 +63,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.ISessionWorkspaceProvider;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISequenceDatabase;
 import ch.systemsx.cisd.openbis.generic.shared.IDataStoreService;
+import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomain;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomainSearchResult;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CustomImportFile;
@@ -525,7 +526,9 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic
             List<SearchDomainSearchResult> result = sequenceDatabase.search(sequenceSnippet, optionalParametersOrNull);
             for (SearchDomainSearchResult sequenceSearchResult : result)
             {
-                sequenceSearchResult.setSearchDomain(sequenceDatabase.getName());
+                SearchDomain searchDomain = new SearchDomain();
+                searchDomain.setName(sequenceDatabase.getName());
+                sequenceSearchResult.setSearchDomain(searchDomain);
             }
             return result;
         }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/EchoDatabase.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/EchoDatabase.java
index c37326f8b64..dbc5a1423ad 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/EchoDatabase.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/EchoDatabase.java
@@ -26,6 +26,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 
 import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSetFileSearchResultLocation;
+import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomain;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomainSearchResult;
 
 /**
@@ -73,7 +74,7 @@ public class EchoDatabase extends AbstractSequenceDatabase
     
     public static final class HelperBean
     {
-        private String searchDomain;
+        private SearchDomain searchDomain = new SearchDomain();
         private DataSetFileSearchResultLocation resultLoacation = new DataSetFileSearchResultLocation();
         
         public DataSetFileSearchResultLocation getResultLoacation()
@@ -81,14 +82,14 @@ public class EchoDatabase extends AbstractSequenceDatabase
             return resultLoacation;
         }
 
-        public String getSearchDomain()
+        public SearchDomain getSearchDomain()
         {
             return searchDomain;
         }
         
         public void setSearchDomain(String searchDomain)
         {
-            this.searchDomain = searchDomain;
+            this.searchDomain.setName(searchDomain);
         }
         
         public void setDataSetCode(String dataSetCode)
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTableTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTableTest.java
index b13e6887d32..838f634c3f9 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTableTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTableTest.java
@@ -48,6 +48,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.event.DeleteDataSetEve
 import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils;
 import ch.systemsx.cisd.openbis.generic.shared.IDataStoreService;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSetFileSearchResultLocation;
+import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomain;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomainSearchResult;
 import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
@@ -235,7 +236,9 @@ public final class DataSetTableTest extends AbstractBOTest
                     for (String foundDataSet : foundDataSets)
                     {
                         SearchDomainSearchResult result = new SearchDomainSearchResult();
-                        result.setSearchDomain("test-db");
+                        SearchDomain searchDomain = new SearchDomain();
+                        searchDomain.setName("test-db");
+                        result.setSearchDomain(searchDomain);
                         DataSetFileSearchResultLocation resultLocation = new DataSetFileSearchResultLocation();
                         resultLocation.setDataSetCode(foundDataSet);
                         resultLocation.setPathInDataSet(foundDataSet + "/path");
diff --git a/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SearchDomain.java b/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SearchDomain.java
new file mode 100644
index 00000000000..2fa00ae95a0
--- /dev/null
+++ b/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SearchDomain.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2014 ETH Zuerich, SIS
+ *
+ * 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.api.v1.dto;
+
+import java.io.Serializable;
+
+import ch.systemsx.cisd.base.annotation.JsonObject;
+
+/**
+ * A class specifying the search domain of a {@link SearchDomainSearchResult}.
+ *
+ * @author Franz-Josef Elmer
+ */
+@JsonObject("SearchDomain")
+public class SearchDomain implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private String name;
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    @Override
+    public String toString()
+    {
+        return name;
+    }
+    
+}
diff --git a/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SearchDomainSearchResult.java b/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SearchDomainSearchResult.java
index 868ee97cec5..9acd39d4130 100644
--- a/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SearchDomainSearchResult.java
+++ b/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SearchDomainSearchResult.java
@@ -30,16 +30,16 @@ public class SearchDomainSearchResult implements Serializable
 {
     private static final long serialVersionUID = 1L;
     
-    private String searchDomain;
+    private SearchDomain searchDomain;
     
     private ISearchDomainResultLocation resultLocation;
 
-    public String getSearchDomain()
+    public SearchDomain getSearchDomain()
     {
         return searchDomain;
     }
     
-    public void setSearchDomain(String searchDomain)
+    public void setSearchDomain(SearchDomain searchDomain)
     {
         this.searchDomain = searchDomain;
     }
-- 
GitLab