From 17ba584eb55ab0ef8ec54274d6548c7d75bf577b Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Wed, 7 Feb 2018 15:18:41 +0100
Subject: [PATCH] species parser extracted to separte package

---
 .../model/sbml/SbmlBioEntityExporter.java     | 35 ++++++++++++++++---
 .../model/sbml/SbmlCompartmentExporter.java   |  6 ++--
 .../converter/model/sbml/SbmlExporter.java    |  1 +
 .../converter/model/sbml/SbmlParser.java      |  1 +
 .../model/sbml/SbmlReactionExporter.java      | 17 +++++----
 .../model/sbml/SbmlReactionParser.java        |  1 +
 .../{ => species}/SbmlSpeciesExporter.java    | 10 +++---
 .../sbml/{ => species}/SbmlSpeciesParser.java |  5 +--
 8 files changed, 53 insertions(+), 23 deletions(-)
 rename converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/{ => species}/SbmlSpeciesExporter.java (73%)
 rename converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/{ => species}/SbmlSpeciesParser.java (94%)

diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java
index b864632fea..3367dd33ba 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java
@@ -16,13 +16,14 @@ import lcsb.mapviewer.common.exception.InvalidStateException;
 import lcsb.mapviewer.model.map.BioEntity;
 import lcsb.mapviewer.model.map.InconsistentModelException;
 
-public abstract class SbmlBioEntityExporter<T extends BioEntity, S extends org.sbml.jsbml.AbstractNamedSBase> extends XmlParser {
+public abstract class SbmlBioEntityExporter<T extends BioEntity, S extends org.sbml.jsbml.AbstractNamedSBase>
+    extends XmlParser {
   Logger logger = Logger.getLogger(SbmlBioEntityExporter.class);
 
-  Layout layout;
+  private Layout layout;
 
-  lcsb.mapviewer.model.map.model.Model minervaModel;
-  Model sbmlModel;
+  private lcsb.mapviewer.model.map.model.Model minervaModel;
+  private Model sbmlModel;
 
   Map<String, S> sbmlElementByElementId = new HashMap<>();
   Map<String, AbstractReferenceGlyph> sbmlGlyphByElementId = new HashMap<>();
@@ -57,7 +58,7 @@ public abstract class SbmlBioEntityExporter<T extends BioEntity, S extends org.s
 
   public abstract S createSbmlElement(T element) throws InconsistentModelException;
 
-  protected S getSbmlElement(T element, String compartmentName) throws InconsistentModelException {
+  public S getSbmlElement(T element, String compartmentName) throws InconsistentModelException {
     String mapKey = element.getClass().getSimpleName() + "\n" + element.getElementId() + "\n" + compartmentName;
     if (sbmlElementByElementNameAndCompartmentName.get(mapKey) == null) {
       S sbmlElement = createSbmlElement(element);
@@ -88,4 +89,28 @@ public abstract class SbmlBioEntityExporter<T extends BioEntity, S extends org.s
     return (idCounter++) + "";
   }
 
+  protected Model getSbmlModel() {
+    return sbmlModel;
+  }
+
+  protected void setSbmlModel(Model sbmlModel) {
+    this.sbmlModel = sbmlModel;
+  }
+
+  protected Layout getLayout() {
+    return layout;
+  }
+
+  protected void setLayout(Layout layout) {
+    this.layout = layout;
+  }
+
+  protected lcsb.mapviewer.model.map.model.Model getMinervaModel() {
+    return minervaModel;
+  }
+
+  protected void setMinervaModel(lcsb.mapviewer.model.map.model.Model minervaModel) {
+    this.minervaModel = minervaModel;
+  }
+
 }
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlCompartmentExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlCompartmentExporter.java
index 269927153d..5d6ed3439f 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlCompartmentExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlCompartmentExporter.java
@@ -18,17 +18,17 @@ public class SbmlCompartmentExporter extends SbmlElementExporter<Compartment, or
 
   @Override
   public org.sbml.jsbml.Compartment createSbmlElement(Compartment element) throws InconsistentModelException {
-    return sbmlModel.createCompartment("comp_" + (getNextId()));
+    return getSbmlModel().createCompartment("comp_" + (getNextId()));
   }
 
   @Override
   protected List<Compartment> getElementList() {
-    return minervaModel.getCompartments();
+    return getMinervaModel().getCompartments();
   }
 
   @Override
   protected AbstractReferenceGlyph createElementGlyph(String sbmlCompartmentId, String glyphId) {
-    return layout.createCompartmentGlyph(glyphId, sbmlCompartmentId);
+    return getLayout().createCompartmentGlyph(glyphId, sbmlCompartmentId);
   }
 
 }
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java
index d05941bef4..57d7dd8793 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java
@@ -11,6 +11,7 @@ import org.sbml.jsbml.ext.layout.Dimensions;
 import org.sbml.jsbml.ext.layout.Layout;
 import org.sbml.jsbml.ext.layout.LayoutModelPlugin;
 
+import lcsb.mapviewer.converter.model.sbml.species.SbmlSpeciesExporter;
 import lcsb.mapviewer.model.map.InconsistentModelException;
 import lcsb.mapviewer.model.map.species.Species;
 
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java
index ee244ef561..beed330498 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java
@@ -28,6 +28,7 @@ import lcsb.mapviewer.converter.ConverterException;
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.IConverter;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
+import lcsb.mapviewer.converter.model.sbml.species.SbmlSpeciesParser;
 import lcsb.mapviewer.model.map.BioEntity;
 import lcsb.mapviewer.model.map.InconsistentModelException;
 import lcsb.mapviewer.model.map.MiriamData;
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionExporter.java
index 7f39759342..e769a96c8c 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionExporter.java
@@ -21,7 +21,6 @@ import org.sbml.jsbml.ext.layout.Point;
 import org.sbml.jsbml.ext.layout.ReactionGlyph;
 import org.sbml.jsbml.ext.layout.SpeciesReferenceGlyph;
 import org.sbml.jsbml.ext.layout.SpeciesReferenceRole;
-import org.sbml.jsbml.text.parser.ParseException;
 import org.w3c.dom.Node;
 
 import lcsb.mapviewer.common.Configuration;
@@ -61,7 +60,7 @@ public class SbmlReactionExporter extends SbmlBioEntityExporter<Reaction, org.sb
     if (result != null) {
       return result;
     }
-    result = sbmlModel.createReaction(reactionId);
+    result = getSbmlModel().createReaction(reactionId);
     result.setReversible(reaction.isReversible());
     for (Product product : reaction.getProducts()) {
       Species sbmlSymbol = speciesExporter.sbmlElementByElementId.get(product.getElement().getElementId());
@@ -88,7 +87,7 @@ public class SbmlReactionExporter extends SbmlBioEntityExporter<Reaction, org.sb
     SbmlKinetics kinetics = reaction.getKinetics();
     KineticLaw result = new KineticLaw();
     for (SbmlParameter minervaParameter : kinetics.getParameters()) {
-      if (minervaModel.getParameterById(minervaParameter.getElementId()) == null) {
+      if (getMinervaModel().getParameterById(minervaParameter.getElementId()) == null) {
         LocalParameter parameter = new LocalParameter();
         parameter.setId(minervaParameter.getElementId());
         parameter.setName(minervaParameter.getName());
@@ -102,11 +101,11 @@ public class SbmlReactionExporter extends SbmlBioEntityExporter<Reaction, org.sb
       Node node = super.getXmlDocumentFromString(kinetics.getDefinition());
       for (Node ciNode : super.getAllNotNecessirellyDirectChild("ci", node)) {
         String id = super.getNodeValue(ciNode).trim();
-        Element element = minervaModel.getElementByElementId(id);
+        Element element = getMinervaModel().getElementByElementId(id);
         if (element != null) {
           String sbmlId = null;
-          Species species= speciesExporter.sbmlElementByElementId.get(id);
-          if (species !=null) {
+          Species species = speciesExporter.sbmlElementByElementId.get(id);
+          if (species != null) {
             sbmlId = species.getId();
           } else {
             sbmlId = compartmentExporter.sbmlElementByElementId.get(id).getId();
@@ -143,10 +142,10 @@ public class SbmlReactionExporter extends SbmlBioEntityExporter<Reaction, org.sb
     try {
       // handle case when input data cannot doesn't come from SBML parser and contains
       // "__" that mess up identifier uniqueness
-      reactionGlyph = layout.createReactionGlyph(glyphId, sbmlElementId);
+      reactionGlyph = getLayout().createReactionGlyph(glyphId, sbmlElementId);
     } catch (IllegalArgumentException e) {
       glyphId += "_" + getNextId();
-      reactionGlyph = layout.createReactionGlyph(glyphId, sbmlElementId);
+      reactionGlyph = getLayout().createReactionGlyph(glyphId, sbmlElementId);
     }
 
     return reactionGlyph;
@@ -154,7 +153,7 @@ public class SbmlReactionExporter extends SbmlBioEntityExporter<Reaction, org.sb
 
   @Override
   protected Collection<Reaction> getElementList() {
-    return minervaModel.getReactions();
+    return getMinervaModel().getReactions();
   }
 
   @Override
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionParser.java
index a623cd3695..6b6e41c57a 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlReactionParser.java
@@ -29,6 +29,7 @@ import lcsb.mapviewer.common.exception.InvalidStateException;
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
 import lcsb.mapviewer.converter.model.celldesigner.types.ModifierType;
+import lcsb.mapviewer.converter.model.sbml.species.SbmlSpeciesParser;
 import lcsb.mapviewer.model.graphics.ArrowType;
 import lcsb.mapviewer.model.graphics.ArrowTypeData;
 import lcsb.mapviewer.model.graphics.PolylineData;
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlSpeciesExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
similarity index 73%
rename from converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlSpeciesExporter.java
rename to converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
index cbde58157f..17a1a9e100 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlSpeciesExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
@@ -1,4 +1,4 @@
-package lcsb.mapviewer.converter.model.sbml;
+package lcsb.mapviewer.converter.model.sbml.species;
 
 import java.util.List;
 
@@ -6,6 +6,8 @@ import org.apache.log4j.Logger;
 import org.sbml.jsbml.ext.layout.AbstractReferenceGlyph;
 import org.sbml.jsbml.ext.layout.Layout;
 
+import lcsb.mapviewer.converter.model.sbml.SbmlCompartmentExporter;
+import lcsb.mapviewer.converter.model.sbml.SbmlElementExporter;
 import lcsb.mapviewer.model.map.InconsistentModelException;
 import lcsb.mapviewer.model.map.species.Species;
 
@@ -21,7 +23,7 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
 
   @Override
   public org.sbml.jsbml.Species createSbmlElement(Species element) throws InconsistentModelException {
-    org.sbml.jsbml.Species result = sbmlModel.createSpecies("species_" + (getNextId()));
+    org.sbml.jsbml.Species result = getSbmlModel().createSpecies("species_" + (getNextId()));
     if (element.getCompartment() != null) {
       result.setCompartment(compartmentExporter.getSbmlElement(element.getCompartment(), null));
     }
@@ -30,13 +32,13 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
 
   @Override
   protected AbstractReferenceGlyph createElementGlyph(String sbmlElementId, String glyphId) {
-    AbstractReferenceGlyph speciesGlyph = layout.createSpeciesGlyph(glyphId, sbmlElementId);
+    AbstractReferenceGlyph speciesGlyph = getLayout().createSpeciesGlyph(glyphId, sbmlElementId);
     return speciesGlyph;
   }
 
   @Override
   protected List<Species> getElementList() {
-    return minervaModel.getSpeciesList();
+    return getMinervaModel().getSpeciesList();
   }
 
 }
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlSpeciesParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java
similarity index 94%
rename from converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlSpeciesParser.java
rename to converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java
index 1a9826c4e3..f93acacea8 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlSpeciesParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java
@@ -1,4 +1,4 @@
-package lcsb.mapviewer.converter.model.sbml;
+package lcsb.mapviewer.converter.model.sbml.species;
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
@@ -15,6 +15,7 @@ import org.sbml.jsbml.ext.layout.SpeciesGlyph;
 import lcsb.mapviewer.common.Pair;
 import lcsb.mapviewer.common.exception.InvalidStateException;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
+import lcsb.mapviewer.converter.model.sbml.SbmlElementParser;
 import lcsb.mapviewer.model.map.compartment.Compartment;
 import lcsb.mapviewer.model.map.species.Element;
 import lcsb.mapviewer.model.map.species.SimpleMolecule;
@@ -51,7 +52,7 @@ public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species>
   }
 
   @Override
-  protected List<Element> mergeLayout(List<? extends Element> elements, Layout sbmlLayout, Model sbmlModel)
+  public List<Element> mergeLayout(List<? extends Element> elements, Layout sbmlLayout, Model sbmlModel)
       throws InvalidInputDataExecption {
     List<Element> result = super.mergeLayout(elements, sbmlLayout, sbmlModel);
 
-- 
GitLab