From 6f235bae19e23ee88d52380108c1814303628dfc Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Fri, 2 Feb 2018 11:53:10 +0100 Subject: [PATCH] export of unit definition added --- .../celldesigner/CellDesignerXmlParser.java | 2 ++ .../unit/UnitCollectionXmlParser.java | 10 +++++++ .../celldesigner/unit/UnitXmlParser.java | 26 +++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java index d4255f49b5..f918d97a6e 100644 --- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java +++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java @@ -592,6 +592,7 @@ public class CellDesignerXmlParser extends XmlParser implements IConverter { SpeciesCollectionXmlParser speciesCollectionXmlParser = new SpeciesCollectionXmlParser(elements); ReactionCollectionXmlParser reactionCollectionXmlParser = new ReactionCollectionXmlParser(model, elements, false); + UnitCollectionXmlParser unitCollectionXmlParser = new UnitCollectionXmlParser(); FunctionCollectionXmlParser functionCollectionXmlParser = new FunctionCollectionXmlParser(); ParameterCollectionXmlParser parameterCollectionXmlParser = new ParameterCollectionXmlParser(model); @@ -611,6 +612,7 @@ public class CellDesignerXmlParser extends XmlParser implements IConverter { result.append("</notes>"); } + result.append(unitCollectionXmlParser.toXml(model.getUnits())); result.append(functionCollectionXmlParser.toXml(model.getFunctions())); result.append(parameterCollectionXmlParser.toXml(model.getParameters())); result.append(annotationToXml(model, elements)); diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitCollectionXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitCollectionXmlParser.java index 1cf70a8067..a442d3c394 100644 --- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitCollectionXmlParser.java +++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitCollectionXmlParser.java @@ -21,4 +21,14 @@ public class UnitCollectionXmlParser extends XmlParser { return result; } + public String toXml(Set<SbmlUnit> units) { + StringBuilder builder = new StringBuilder(); + builder.append("<listOfUnitDefinitions>\n"); + for (SbmlUnit unit: units) { + builder.append(unitParser.toXml(unit)); + } + builder.append("</listOfUnitDefinitions>\n"); + return builder.toString(); + } + } diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitXmlParser.java index fe1ca925a0..d93d4f2951 100644 --- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitXmlParser.java +++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitXmlParser.java @@ -67,4 +67,30 @@ public class UnitXmlParser extends XmlParser { } return new SbmlUnitTypeFactor(unitType, exponent, scale, multiplier); } + + public String toXml(SbmlUnit unit) { + StringBuilder result = new StringBuilder(); + result.append("<unitDefinition "); + result.append("id=\"" + unit.getUnitId() + "\" "); + result.append("name=\"" + unit.getName() + "\" "); + result.append(">\n"); + result.append("<listOfUnits>\n"); + for (SbmlUnitTypeFactor factor : unit.getUnitTypeFactors()) { + result.append(toXml(factor)); + } + result.append("</listOfUnits>\n"); + result.append("</unitDefinition>"); + return result.toString(); + } + + private String toXml(SbmlUnitTypeFactor factor) { + StringBuilder result = new StringBuilder(); + result.append("<unit "); + result.append("kind=\"" + factor.getUnitType().toString().toLowerCase() + "\" "); + result.append("scale=\"" + factor.getScale() + "\" "); + result.append("exponent=\"" + factor.getExponent() + "\" "); + result.append("multiplier=\"" + factor.getMultiplier() + "\" "); + result.append("/>\n"); + return result.toString(); + } } -- GitLab