Skip to content
Snippets Groups Projects
Commit c94158a7 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

export of elements use autogenerated ids

parent 836994f3
No related branches found
No related tags found
1 merge request!186Resolve "upload of sbml"
......@@ -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++) + "";
}
}
......@@ -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
......
......@@ -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);
......
......@@ -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);
......
......@@ -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));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment