From 9713e553b1245d6b2078b50c27d916b4241b3971 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Fri, 4 Jan 2019 14:23:21 +0100
Subject: [PATCH] import export of element abbreviation implemented

---
 .../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 d51503dc71..32df3fa608 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
@@ -20,6 +20,9 @@ public enum BioEntityFeature {
   FORMULA("Formula", null, new Class<?>[] { Element.class },
       "minerva_formula_"), 
   
+  ABBREVIATION("Abbreviation", null, new Class<?>[] { Element.class },
+      "minerva_abbreviation_"), 
+  
   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 0f2951dfc3..b9bacc64e8 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
@@ -102,6 +102,7 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
     assignSymbolToMulti(element, multiExtension, speciesType);
     assignFullNameToMulti(element, multiExtension, speciesType);
     assignFormulaToMulti(element, multiExtension, speciesType);
+    assignAbbreviationToMulti(element, multiExtension, speciesType);
   }
 
   private void assignElementModificationResiduesToMulti(Species element, MultiSpeciesPlugin multiExtension,
@@ -287,6 +288,11 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
     assignValueToFeature(element, multiExtension, speciesType, element.getFormula(), BioEntityFeature.FORMULA);
   }
 
+  private void assignAbbreviationToMulti(Species element, MultiSpeciesPlugin multiExtension,
+      MultiSpeciesType speciesType) {
+    assignValueToFeature(element, multiExtension, speciesType, element.getAbbreviation(), BioEntityFeature.ABBREVIATION);
+  }
+
   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 680044ff49..7b19918850 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
@@ -163,6 +163,12 @@ public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species>
       } else {
         minervaElement.setFormula(featureValues.get(0));
       }
+    } else if (MultiPackageNamingUtils.isFeatureId(featureTypeString, BioEntityFeature.ABBREVIATION)) {
+      if (featureValues.size() != 1) {
+        logger.warn(warnPrefix + "Abbreviation must have exactly one value");
+      } else {
+        minervaElement.setAbbreviation(featureValues.get(0));
+      }
     } else if (MultiPackageNamingUtils.isModificationFeatureId(featureTypeString)) {
       createModificationResidues(minervaElement, speciesType, feature);
     } else {
-- 
GitLab