From 205c4b967dde24ee620b0315dc7345c0fe24d9b4 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Thu, 13 Feb 2014 22:18:01 +0100 Subject: [PATCH] [Minor] added sorting of exports XML model - Parameters are sorted by Index - ParameterBags are sorted by Id --- .../model/xml/AbstractToSaxWriterVisitor.java | 20 +++++++++++++------ .../strolch/model/xml/XmlModelSaxReader.java | 18 +++++++++++++++++ 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/main/java/li/strolch/model/xml/AbstractToSaxWriterVisitor.java b/src/main/java/li/strolch/model/xml/AbstractToSaxWriterVisitor.java index ee3a27a53..36d5088da 100644 --- a/src/main/java/li/strolch/model/xml/AbstractToSaxWriterVisitor.java +++ b/src/main/java/li/strolch/model/xml/AbstractToSaxWriterVisitor.java @@ -15,7 +15,12 @@ */ package li.strolch.model.xml; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; import java.util.Set; +import java.util.TreeSet; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; @@ -63,10 +68,14 @@ public abstract class AbstractToSaxWriterVisitor { protected void writeParameters(ParameterizedElement element) throws XMLStreamException { - Set parameterKeySet = element.getParameterKeySet(); - for (String paramKey : parameterKeySet) { - Parameter parameter = element.getParameter(paramKey); - + List> parameters = new ArrayList<>(element.getParameters()); + Collections.sort(parameters, new Comparator>() { + @Override + public int compare(Parameter o1, Parameter o2) { + return Integer.valueOf(o1.getIndex()).compareTo(o2.getIndex()); + } + }); + for (Parameter parameter : parameters) { writeStartStrolchElement(Tags.PARAMETER, true, parameter); if (!Parameter.INTERPRETATION_NONE.equals(parameter.getInterpretation())) @@ -83,8 +92,7 @@ public abstract class AbstractToSaxWriterVisitor { } protected void writeParameterBags(GroupedParameterizedElement element) throws XMLStreamException { - - Set bagKeySet = element.getParameterBagKeySet(); + Set bagKeySet = new TreeSet<>(element.getParameterBagKeySet()); for (String bagKey : bagKeySet) { ParameterBag parameterBag = element.getParameterBag(bagKey); boolean isEmpty = !parameterBag.hasParameters(); diff --git a/src/main/java/li/strolch/model/xml/XmlModelSaxReader.java b/src/main/java/li/strolch/model/xml/XmlModelSaxReader.java index ec4849e97..cca74afa0 100644 --- a/src/main/java/li/strolch/model/xml/XmlModelSaxReader.java +++ b/src/main/java/li/strolch/model/xml/XmlModelSaxReader.java @@ -15,6 +15,8 @@ */ package li.strolch.model.xml; +import static ch.eitchnet.utils.helper.StringHelper.NULL; + import java.text.MessageFormat; import java.util.Date; @@ -196,5 +198,21 @@ public class XmlModelSaxReader extends DefaultHandler { public long durationNanos; public int nrOfResources; public int nrOfOrders; + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("XmlModelStatistics [startTime="); + builder.append(this.startTime == null ? NULL : ISO8601FormatFactory.getInstance() + .formatDate(this.startTime)); + builder.append(", durationNanos="); + builder.append(StringHelper.formatNanoDuration(this.durationNanos)); + builder.append(", nrOfResources="); + builder.append(this.nrOfResources); + builder.append(", nrOfOrders="); + builder.append(this.nrOfOrders); + builder.append("]"); + return builder.toString(); + } } }