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 1a18c6ef251b0b17e176fb0dd42ebc2e8b0fb65d..4e9d5a26abaa5da1b02550578f799d48436d32ab 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 08b5be58ec9244bbc26f1561c7871f33ec79fccf..269927153d0ff5db3926bba98c4409c923cf1482 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 0a54f2fa59dfb9b6c6fa59fec52d0f85909d7580..df4725618823b3100e612e436bce4d731aa0c341 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 092a3b7679b8d04458223471cc6a9d09d4fbf083..e6be4a1c1e20b769a3c1d20247a40a5bde64ca7e 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 692095b88b77bdba3534df419a82f00cda8e380b..cbde58157f83c5056e593c4e0a34d59e96facc98 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)); }