From e4ad45eb344a1aa71c9f687ec66e9fe793afd344 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Wed, 7 Feb 2018 17:39:38 +0100
Subject: [PATCH] export of reaction type added

---
 .../sbml/reaction/SBOTermReactionType.java    | 24 ++++++++++++++++---
 .../sbml/reaction/SbmlReactionExporter.java   |  1 +
 .../sbml/GenericSbmlToXmlParserTest.java      | 10 --------
 3 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java
index 73422774e9..5424c1e616 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java
@@ -1,7 +1,7 @@
 package lcsb.mapviewer.converter.model.sbml.reaction;
 
-import java.util.HashSet;
-import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.log4j.Logger;
 
@@ -37,7 +37,7 @@ public enum SBOTermReactionType {
   ;
 
   private static Logger logger = Logger.getLogger(SBOTermReactionType.class);
-  private Set<String> sboTerms = new HashSet<>();
+  private List<String> sboTerms = new ArrayList<>();
   Class<? extends Reaction> clazz;
 
   private SBOTermReactionType(Class<? extends Reaction> clazz, String[] inputSboTerms) {
@@ -65,4 +65,22 @@ public enum SBOTermReactionType {
     }
     return result;
   }
+
+  public static String getTermByType(Class<? extends Reaction> clazz) {
+    for (SBOTermReactionType term : values()) {
+      if (clazz.equals(term.clazz)) {
+        return term.getSBO();
+      }
+    }
+    logger.warn("Cannot find SBO term for class: " + clazz);
+    return null;
+  }
+
+  private String getSBO() {
+    if (sboTerms.size() != 0) {
+      return sboTerms.get(0);
+    }
+    logger.warn("Cannot find SBO term for class: " + clazz);
+    return null;
+  }
 }
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporter.java
index 293a21c487..67e1391847 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporter.java
@@ -63,6 +63,7 @@ public class SbmlReactionExporter extends SbmlBioEntityExporter<Reaction, org.sb
     }
     result = getSbmlModel().createReaction(reactionId);
     result.setReversible(reaction.isReversible());
+    result.setSBOTerm(SBOTermReactionType.getTermByType(reaction.getClass()));
     for (Product product : reaction.getProducts()) {
       Species sbmlSymbol = speciesExporter.getSbmlElementByElementId(product.getElement().getElementId());
       SpeciesReference speciesReference = result.createProduct(sbmlSymbol);
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java
index fc25729abe..4b17dfa771 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java
@@ -47,16 +47,6 @@ public class GenericSbmlToXmlParserTest {
         data.add(new Object[] { fPath });
       }
     });
-    Files.walk(Paths.get("testFiles/small/reaction")).forEach(fPath -> {
-      if (Files.isRegularFile(fPath) && fPath.toString().endsWith(".xml")) {
-        data.add(new Object[] { fPath });
-      }
-    });
-    Files.walk(Paths.get("testFiles/small/modifier")).forEach(fPath -> {
-      if (Files.isRegularFile(fPath) && fPath.toString().endsWith(".xml")) {
-        data.add(new Object[] { fPath });
-      }
-    });
     return data;
   }
 
-- 
GitLab