From 6cccf92891cd9d6975194450c35070a235db6ee3 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Fri, 16 Nov 2018 15:52:26 +0100 Subject: [PATCH] toString uses UTF-8 encoding --- .../converter/model/sbml/SbmlExporter.java | 51 +++++++++++-------- 1 file changed, 29 insertions(+), 22 deletions(-) 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 3d860fecee..e8129d4803 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 @@ -1,5 +1,7 @@ package lcsb.mapviewer.converter.model.sbml; +import java.io.UnsupportedEncodingException; + import javax.xml.stream.XMLStreamException; import org.apache.commons.io.output.ByteArrayOutputStream; @@ -14,6 +16,7 @@ import org.sbml.jsbml.ext.layout.LayoutModelPlugin; import org.sbml.jsbml.ext.render.GlobalRenderInformation; 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.species.SbmlSpeciesExporter; import lcsb.mapviewer.converter.model.sbml.units.SbmlUnitExporter; @@ -25,30 +28,34 @@ public class SbmlExporter { public String toXml(lcsb.mapviewer.model.map.model.Model model) throws SBMLException, XMLStreamException, InconsistentModelException { - SBMLDocument doc = new SBMLDocument(3, 1); - Model result = doc.createModel(model.getIdModel()); - result.setName(model.getName()); - Layout layout = createSbmlLayout(model, result); + try { + SBMLDocument doc = new SBMLDocument(3, 1); + Model result = doc.createModel(model.getIdModel()); + result.setName(model.getName()); + Layout layout = createSbmlLayout(model, result); - SbmlCompartmentExporter compartmentExporter = new SbmlCompartmentExporter(layout, model); - SbmlBioEntityExporter<Species, org.sbml.jsbml.Species> speciesExporter = new SbmlSpeciesExporter(layout, model, - compartmentExporter); - SbmlReactionExporter reactionExporter = new SbmlReactionExporter(layout, model, speciesExporter, - compartmentExporter); - SbmlUnitExporter unitExporter = new SbmlUnitExporter(model); - SbmlParameterExporter parameterExporter = new SbmlParameterExporter(model); - SbmlFunctionExporter functionExporter = new SbmlFunctionExporter(model); + SbmlCompartmentExporter compartmentExporter = new SbmlCompartmentExporter(layout, model); + SbmlBioEntityExporter<Species, org.sbml.jsbml.Species> speciesExporter = new SbmlSpeciesExporter(layout, model, + compartmentExporter); + SbmlReactionExporter reactionExporter = new SbmlReactionExporter(layout, model, speciesExporter, + compartmentExporter); + SbmlUnitExporter unitExporter = new SbmlUnitExporter(model); + SbmlParameterExporter parameterExporter = new SbmlParameterExporter(model); + SbmlFunctionExporter functionExporter = new SbmlFunctionExporter(model); - compartmentExporter.exportElements(result); - speciesExporter.exportElements(result); - reactionExporter.exportElements(result); - unitExporter.exportUnits(result); - parameterExporter.exportParameter(result); - functionExporter.exportFunction(result); + compartmentExporter.exportElements(result); + speciesExporter.exportElements(result); + reactionExporter.exportElements(result); + unitExporter.exportUnits(result); + parameterExporter.exportParameter(result); + functionExporter.exportFunction(result); - ByteArrayOutputStream stream = new ByteArrayOutputStream(); - SBMLWriter.write(doc, stream, "minerva", "1.0"); - return stream.toString(); + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + SBMLWriter.write(doc, stream, "minerva", "1.0"); + return stream.toString("UTF-8"); + } catch (UnsupportedEncodingException e) { + throw new InvalidStateException(e); + } } public Layout createSbmlLayout(lcsb.mapviewer.model.map.model.Model model, Model result) { @@ -68,7 +75,7 @@ public class SbmlExporter { layout.setDimensions(dimensions); layoutPlugin.add(layout); result.addExtension("layout", layoutPlugin); - + createSbmlRenderPlugin(layout, result); return layout; } -- GitLab