From c94158a79f70fcaff8709b4b358c43751b14ba56 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 21 Dec 2017 16:22:16 +0100 Subject: [PATCH] export of elements use autogenerated ids --- .../converter/model/sbml/SbmlBioEntityExporter.java | 6 ++++++ .../converter/model/sbml/SbmlCompartmentExporter.java | 2 +- .../lcsb/mapviewer/converter/model/sbml/SbmlExporter.java | 3 ++- .../converter/model/sbml/SbmlReactionExporter.java | 7 +++---- .../converter/model/sbml/SbmlSpeciesExporter.java | 3 +-- 5 files changed, 13 insertions(+), 8 deletions(-) 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 1a18c6ef25..4e9d5a26ab 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 @@ -28,6 +28,8 @@ public abstract class SbmlBioEntityExporter<T extends BioEntity, S extends org.s private Map<String, S> sbmlElementByElementNameAndCompartmentName = new HashMap<>(); + private int idCounter = 0; + public SbmlBioEntityExporter(Layout sbmlLayout, lcsb.mapviewer.model.map.model.Model minervaModel) { this.layout = sbmlLayout; this.minervaModel = minervaModel; @@ -81,4 +83,8 @@ public abstract class SbmlBioEntityExporter<T extends BioEntity, S extends org.s protected abstract AbstractReferenceGlyph createElementGlyph(String sbmlCompartmentId, String glyphId); + protected String getNextId() { + return (idCounter++) + ""; + } + } 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 08b5be58ec..269927153d 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,7 +18,7 @@ public class SbmlCompartmentExporter extends SbmlElementExporter<Compartment, or @Override public org.sbml.jsbml.Compartment createSbmlElement(Compartment element) throws InconsistentModelException { - return sbmlModel.createCompartment("comp_" + element.getName()); + return sbmlModel.createCompartment("comp_" + (getNextId())); } @Override 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 0a54f2fa59..df47256188 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 @@ -12,6 +12,7 @@ import org.sbml.jsbml.ext.layout.Layout; import org.sbml.jsbml.ext.layout.LayoutModelPlugin; import lcsb.mapviewer.model.map.InconsistentModelException; +import lcsb.mapviewer.model.map.species.Species; public class SbmlExporter { public String toXml(lcsb.mapviewer.model.map.model.Model model) @@ -21,7 +22,7 @@ public class SbmlExporter { Layout layout = createSbmlLayout(model, result); SbmlCompartmentExporter compartmentExporter = new SbmlCompartmentExporter(layout, model); - SbmlSpeciesExporter speciesExporter = new SbmlSpeciesExporter(layout, model, compartmentExporter); + SbmlBioEntityExporter<Species, org.sbml.jsbml.Species> speciesExporter = new SbmlSpeciesExporter(layout, model, compartmentExporter); SbmlReactionExporter reactionExporter = new SbmlReactionExporter(layout, model, speciesExporter); compartmentExporter.exportElements(result); speciesExporter.exportElements(result); 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 092a3b7679..e6be4a1c1e 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 @@ -15,18 +15,17 @@ import lcsb.mapviewer.model.map.reaction.Reaction; public class SbmlReactionExporter extends SbmlBioEntityExporter<Reaction, org.sbml.jsbml.Reaction> { Logger logger = Logger.getLogger(SbmlReactionExporter.class); - private int idCounter = 0; - private SbmlSpeciesExporter speciesExporter; + private SbmlBioEntityExporter<lcsb.mapviewer.model.map.species.Species, Species> speciesExporter; public SbmlReactionExporter(Layout layout, lcsb.mapviewer.model.map.model.Model minervaModel, - SbmlSpeciesExporter speciesExporter) { + SbmlBioEntityExporter<lcsb.mapviewer.model.map.species.Species, Species> speciesExporter) { super(layout, minervaModel); this.speciesExporter = speciesExporter; } @Override public org.sbml.jsbml.Reaction createSbmlElement(Reaction reaction) throws InconsistentModelException { - org.sbml.jsbml.Reaction result = sbmlModel.createReaction("reaction_" + (idCounter++)); + org.sbml.jsbml.Reaction result = sbmlModel.createReaction("reaction_" + (getNextId())); for (Product product : reaction.getProducts()) { Species sbmlSymbol = speciesExporter.sbmlElementByElementId.get(product.getElement().getElementId()); result.createProduct(sbmlSymbol); 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/SbmlSpeciesExporter.java index 692095b88b..cbde58157f 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/SbmlSpeciesExporter.java @@ -11,7 +11,6 @@ import lcsb.mapviewer.model.map.species.Species; public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.jsbml.Species> { Logger logger = Logger.getLogger(SbmlSpeciesExporter.class); - private int idCounter = 0; private SbmlCompartmentExporter compartmentExporter; public SbmlSpeciesExporter(Layout layout, lcsb.mapviewer.model.map.model.Model minervaModel, @@ -22,7 +21,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_" + (idCounter++)); + org.sbml.jsbml.Species result = sbmlModel.createSpecies("species_" + (getNextId())); if (element.getCompartment() != null) { result.setCompartment(compartmentExporter.getSbmlElement(element.getCompartment(), null)); } -- GitLab