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

toString uses UTF-8 encoding

parent 5544953e
No related branches found
No related tags found
2 merge requests!630WIP: Resolve "The privileges of a new user are not saved in some cases",!508Resolve "Export to SBML results in invalid SBML file"
package lcsb.mapviewer.converter.model.sbml; package lcsb.mapviewer.converter.model.sbml;
import java.io.UnsupportedEncodingException;
import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamException;
import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.commons.io.output.ByteArrayOutputStream;
...@@ -14,6 +16,7 @@ import org.sbml.jsbml.ext.layout.LayoutModelPlugin; ...@@ -14,6 +16,7 @@ import org.sbml.jsbml.ext.layout.LayoutModelPlugin;
import org.sbml.jsbml.ext.render.GlobalRenderInformation; import org.sbml.jsbml.ext.render.GlobalRenderInformation;
import org.sbml.jsbml.ext.render.RenderLayoutPlugin; import org.sbml.jsbml.ext.render.RenderLayoutPlugin;
import lcsb.mapviewer.common.exception.InvalidStateException;
import lcsb.mapviewer.converter.model.sbml.reaction.SbmlReactionExporter; import lcsb.mapviewer.converter.model.sbml.reaction.SbmlReactionExporter;
import lcsb.mapviewer.converter.model.sbml.species.SbmlSpeciesExporter; import lcsb.mapviewer.converter.model.sbml.species.SbmlSpeciesExporter;
import lcsb.mapviewer.converter.model.sbml.units.SbmlUnitExporter; import lcsb.mapviewer.converter.model.sbml.units.SbmlUnitExporter;
...@@ -25,30 +28,34 @@ public class SbmlExporter { ...@@ -25,30 +28,34 @@ public class SbmlExporter {
public String toXml(lcsb.mapviewer.model.map.model.Model model) public String toXml(lcsb.mapviewer.model.map.model.Model model)
throws SBMLException, XMLStreamException, InconsistentModelException { throws SBMLException, XMLStreamException, InconsistentModelException {
SBMLDocument doc = new SBMLDocument(3, 1); try {
Model result = doc.createModel(model.getIdModel()); SBMLDocument doc = new SBMLDocument(3, 1);
result.setName(model.getName()); Model result = doc.createModel(model.getIdModel());
Layout layout = createSbmlLayout(model, result); result.setName(model.getName());
Layout layout = createSbmlLayout(model, result);
SbmlCompartmentExporter compartmentExporter = new SbmlCompartmentExporter(layout, model); SbmlCompartmentExporter compartmentExporter = new SbmlCompartmentExporter(layout, model);
SbmlBioEntityExporter<Species, org.sbml.jsbml.Species> speciesExporter = new SbmlSpeciesExporter(layout, model, SbmlBioEntityExporter<Species, org.sbml.jsbml.Species> speciesExporter = new SbmlSpeciesExporter(layout, model,
compartmentExporter); compartmentExporter);
SbmlReactionExporter reactionExporter = new SbmlReactionExporter(layout, model, speciesExporter, SbmlReactionExporter reactionExporter = new SbmlReactionExporter(layout, model, speciesExporter,
compartmentExporter); compartmentExporter);
SbmlUnitExporter unitExporter = new SbmlUnitExporter(model); SbmlUnitExporter unitExporter = new SbmlUnitExporter(model);
SbmlParameterExporter parameterExporter = new SbmlParameterExporter(model); SbmlParameterExporter parameterExporter = new SbmlParameterExporter(model);
SbmlFunctionExporter functionExporter = new SbmlFunctionExporter(model); SbmlFunctionExporter functionExporter = new SbmlFunctionExporter(model);
compartmentExporter.exportElements(result); compartmentExporter.exportElements(result);
speciesExporter.exportElements(result); speciesExporter.exportElements(result);
reactionExporter.exportElements(result); reactionExporter.exportElements(result);
unitExporter.exportUnits(result); unitExporter.exportUnits(result);
parameterExporter.exportParameter(result); parameterExporter.exportParameter(result);
functionExporter.exportFunction(result); functionExporter.exportFunction(result);
ByteArrayOutputStream stream = new ByteArrayOutputStream(); ByteArrayOutputStream stream = new ByteArrayOutputStream();
SBMLWriter.write(doc, stream, "minerva", "1.0"); SBMLWriter.write(doc, stream, "minerva", "1.0");
return stream.toString(); return stream.toString("UTF-8");
} catch (UnsupportedEncodingException e) {
throw new InvalidStateException(e);
}
} }
public Layout createSbmlLayout(lcsb.mapviewer.model.map.model.Model model, Model result) { public Layout createSbmlLayout(lcsb.mapviewer.model.map.model.Model model, Model result) {
...@@ -68,7 +75,7 @@ public class SbmlExporter { ...@@ -68,7 +75,7 @@ public class SbmlExporter {
layout.setDimensions(dimensions); layout.setDimensions(dimensions);
layoutPlugin.add(layout); layoutPlugin.add(layout);
result.addExtension("layout", layoutPlugin); result.addExtension("layout", layoutPlugin);
createSbmlRenderPlugin(layout, result); createSbmlRenderPlugin(layout, result);
return layout; return layout;
} }
......
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