[Minor] added sorting of exports XML model

- Parameters are sorted by Index
- ParameterBags are sorted by Id
This commit is contained in:
Robert von Burg 2014-02-13 22:18:01 +01:00
parent 791f12eef3
commit 205c4b967d
2 changed files with 32 additions and 6 deletions

View File

@ -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<String> parameterKeySet = element.getParameterKeySet();
for (String paramKey : parameterKeySet) {
Parameter<?> parameter = element.getParameter(paramKey);
List<Parameter<?>> parameters = new ArrayList<>(element.getParameters());
Collections.sort(parameters, new Comparator<Parameter<?>>() {
@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<String> bagKeySet = element.getParameterBagKeySet();
Set<String> bagKeySet = new TreeSet<>(element.getParameterBagKeySet());
for (String bagKey : bagKeySet) {
ParameterBag parameterBag = element.getParameterBag(bagKey);
boolean isEmpty = !parameterBag.hasParameters();

View File

@ -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();
}
}
}