From a8fc1c7dbde8cc65438bc79f1d74622d68c2da0c Mon Sep 17 00:00:00 2001
From: gakin <gakin>
Date: Tue, 31 Jan 2017 09:13:56 +0000
Subject: [PATCH] SSDM-4594 : OpenbisSync -  retrieve file format types

SVN: 37646
---
 .../sync/common/MasterDataExtractor.java      | 31 +++++++++++++------
 1 file changed, 22 insertions(+), 9 deletions(-)

diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/common/MasterDataExtractor.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/common/MasterDataExtractor.java
index b6a5f7e3c35..4fc4da37cc3 100644
--- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/common/MasterDataExtractor.java
+++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/common/MasterDataExtractor.java
@@ -51,6 +51,7 @@ import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.DataType;
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IDataSetTypeImmutable;
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IEntityType;
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IExperimentTypeImmutable;
+import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IFileFormatTypeImmutable;
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IMasterDataRegistrationTransaction;
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IMaterialTypeImmutable;
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IPropertyTypeImmutable;
@@ -93,6 +94,10 @@ public class MasterDataExtractor
         Element rootElement = doc.createElement("masterData");
         doc.appendChild(rootElement);
 
+        // append file format types
+        List<IFileFormatTypeImmutable> fileFormatTypes = masterDataRegistrationTransaction.listFileFormatTypes();
+        appendFileFormatTypes(doc, rootElement, fileFormatTypes);
+
         // append vocabularies
         List<IVocabularyImmutable> vocabularies = masterDataRegistrationTransaction.listVocabularies();
         appendVocabularies(doc, rootElement, vocabularies);
@@ -126,6 +131,22 @@ public class MasterDataExtractor
         return writer.toString();
     }
 
+    private void appendFileFormatTypes(Document doc, Element rootElement, List<IFileFormatTypeImmutable> fileFormatTypes)
+    {
+        if (fileFormatTypes.size() > 0)
+        {
+            Element fileFormatTypesElement = doc.createElement("fileFormatTypes");
+            rootElement.appendChild(fileFormatTypesElement);
+            for (IFileFormatTypeImmutable fileFormatType : fileFormatTypes)
+            {
+                Element fileFormatTypeElement = doc.createElement("fileFormatType");
+                fileFormatTypeElement.setAttribute("code", fileFormatType.getCode());
+                fileFormatTypeElement.setAttribute("description", fileFormatType.getCode());
+                fileFormatTypesElement.appendChild(fileFormatTypeElement);
+            }
+        }
+    }
+
     private void appendPropertyTypes(Document doc, Element rootElement, List<IPropertyTypeImmutable> propertyTypes)
     {
         if (propertyTypes.size() > 0)
@@ -302,9 +323,8 @@ public class MasterDataExtractor
         {
             Element propertyAssignmentElement = doc.createElement("propertyAssignment");
             propertyAssignmentsElement.appendChild(propertyAssignmentElement);
-            propertyAssignmentElement.setAttribute("property_type_code", CodeConverter.tryToBusinessLayer(propAssignment.getPropertyType().getCode(),
+            propertyAssignmentElement.setAttribute("propertyTypeCode", CodeConverter.tryToBusinessLayer(propAssignment.getPropertyType().getCode(),
                     propAssignment.getPropertyType().isInternalNameSpace()));
-            // propertyAssigmentElement.setAttribute("data_type_code", propAssignment.getPropertyType().getDataType().toString());
             propertyAssignmentElement.setAttribute("ordinal", String.valueOf(propAssignment.getOrdinal()));
             propertyAssignmentElement.setAttribute("section", propAssignment.getSection());
             propertyAssignmentElement.setAttribute("showInEdit", String.valueOf(propAssignment.isShowInEditView()));
@@ -314,13 +334,6 @@ public class MasterDataExtractor
         return propertyAssignmentsElement;
     }
 
-    // @XmlRootElement
-    // @XmlAccessorType(XmlAccessType.FIELD)
-    private static class MasterData
-    {
-        // @XmlElement(name = "sampleType")
-    }
-
     private Map<String, List<PropertyAssignment>> loadDataSetTypesUsingV3WithPropertyAssignments()
     {
         // We are mixing up v1 and v3 here because using v3 api to get property assignments is easier
-- 
GitLab