From 87c9c6605ee2ae9d8024b0ac0a158f57f02f8ec0 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Fri, 4 Jan 2019 14:12:12 +0100
Subject: [PATCH] import/export of element full name added

---
 .../model/sbml/extension/multi/BioEntityFeature.java        | 3 +++
 .../converter/model/sbml/species/SbmlSpeciesExporter.java   | 6 ++++++
 .../converter/model/sbml/species/SbmlSpeciesParser.java     | 6 ++++++
 3 files changed, 15 insertions(+)

diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/BioEntityFeature.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/BioEntityFeature.java
index 02dfab98ff..e30f31ebf3 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/BioEntityFeature.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/BioEntityFeature.java
@@ -14,6 +14,9 @@ public enum BioEntityFeature {
   SYNONYM("Synonym", null, new Class<?>[] { Element.class },
       "minerva_synonym_"), 
   
+  FULL_NAME("Full name", null, new Class<?>[] { Element.class },
+      "minerva_full_name_"), 
+  
   SYMBOL("Symbol", null, new Class<?>[] { Element.class },
       "minerva_symbol_"); 
   
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
index 9356fb591e..316c0b0b7e 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
@@ -100,6 +100,7 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
     assignElementModificationResiduesToMulti(element, multiExtension, speciesType);
     assignListOfSynonymsToMulti(element, multiExtension, speciesType);
     assignSymbolToMulti(element, multiExtension, speciesType);
+    assignFullNameToMulti(element, multiExtension, speciesType);
   }
 
   private void assignElementModificationResiduesToMulti(Species element, MultiSpeciesPlugin multiExtension,
@@ -275,6 +276,11 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
     assignValueToFeature(element, multiExtension, speciesType, element.getSymbol(), BioEntityFeature.SYMBOL);
   }
 
+  private void assignFullNameToMulti(Species element, MultiSpeciesPlugin multiExtension,
+      MultiSpeciesType speciesType) {
+    assignValueToFeature(element, multiExtension, speciesType, element.getFullName(), BioEntityFeature.FULL_NAME);
+  }
+
   private void assignValueToFeature(Species element, MultiSpeciesPlugin multiExtension, MultiSpeciesType speciesType,
       String value, BioEntityFeature feature) {
     SpeciesFeatureType structuralStateFeature = getFeature(element.getClass(), speciesType, feature);
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java
index e34dac0312..90754235bf 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java
@@ -151,6 +151,12 @@ public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species>
       } else {
         minervaElement.setSymbol(featureValues.get(0));
       }
+    } else if (MultiPackageNamingUtils.isFeatureId(featureTypeString, BioEntityFeature.FULL_NAME)) {
+      if (featureValues.size() != 1) {
+        logger.warn(warnPrefix + "Full name must have exactly one value");
+      } else {
+        minervaElement.setFullName(featureValues.get(0));
+      }
     } else if (MultiPackageNamingUtils.isModificationFeatureId(featureTypeString)) {
       createModificationResidues(minervaElement, speciesType, feature);
     } else {
-- 
GitLab