From 193b76ed60e37d205df20b6ad146dcd674ac2f0f Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Sat, 21 Feb 2015 00:19:58 +0100 Subject: [PATCH] [Bugfix] fixed bug on AbstractToSaxWriterVisitor writing timestates --- .../model/xml/AbstractToSaxWriterVisitor.java | 2 +- .../java/li/strolch/model/XmlToSaxTest.java | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/li.strolch.model/src/main/java/li/strolch/model/xml/AbstractToSaxWriterVisitor.java b/li.strolch.model/src/main/java/li/strolch/model/xml/AbstractToSaxWriterVisitor.java index 9f50deaf4..5c85b3a06 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/xml/AbstractToSaxWriterVisitor.java +++ b/li.strolch.model/src/main/java/li/strolch/model/xml/AbstractToSaxWriterVisitor.java @@ -82,7 +82,7 @@ public abstract class AbstractToSaxWriterVisitor { ITimeVariable> timeEvolution = timedState.getTimeEvolution(); SortedSet>> values = timeEvolution.getValues(); - writeStartStrolchElement(Tags.TIMED_STATE, !values.isEmpty(), timedState); + writeStartStrolchElement(Tags.TIMED_STATE, values.isEmpty(), timedState); for (ITimeValue> timeValue : values) { this.writer.writeEmptyElement(Tags.VALUE); diff --git a/li.strolch.model/src/test/java/li/strolch/model/XmlToSaxTest.java b/li.strolch.model/src/test/java/li/strolch/model/XmlToSaxTest.java index d37569c63..aa42cb40a 100644 --- a/li.strolch.model/src/test/java/li/strolch/model/XmlToSaxTest.java +++ b/li.strolch.model/src/test/java/li/strolch/model/XmlToSaxTest.java @@ -18,10 +18,19 @@ package li.strolch.model; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; + +import java.io.ByteArrayOutputStream; + +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamWriter; + import li.strolch.model.visitor.OrderDeepEqualsVisitor; import li.strolch.model.visitor.ResourceDeepEqualsVisitor; import li.strolch.model.xml.OrderToSaxVisitor; +import li.strolch.model.xml.OrderToSaxWriterVisitor; import li.strolch.model.xml.ResourceToSaxVisitor; +import li.strolch.model.xml.ResourceToSaxWriterVisitor; import li.strolch.model.xml.SimpleStrolchElementListener; import li.strolch.model.xml.XmlModelSaxReader; @@ -72,4 +81,30 @@ public class XmlToSaxTest extends ModelTest { visitor.visit(parsedResource); assertTrue("To DOM and back should equal same Resource:\n" + visitor.getMismatchedLocators(), visitor.isEqual()); } + + @Test + public void shouldToSaxOrder() throws XMLStreamException { + Order order = ModelGenerator.createOrder("@1", "My Order 1", "MyOrder"); + XMLOutputFactory factory = XMLOutputFactory.newInstance(); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + XMLStreamWriter writer = factory.createXMLStreamWriter(out, "UTF-8"); + writer.writeStartDocument(); + writer.writeStartElement(Tags.STROLCH_MODEL); + OrderToSaxWriterVisitor toSax = new OrderToSaxWriterVisitor(writer); + toSax.visit(order); + writer.writeEndDocument(); + } + + @Test + public void shouldToSaxResource() throws XMLStreamException { + Resource resource = ModelGenerator.createResource("@1", "My Resource 1", "MyResource"); + XMLOutputFactory factory = XMLOutputFactory.newInstance(); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + XMLStreamWriter writer = factory.createXMLStreamWriter(out, "UTF-8"); + writer.writeStartDocument(); + writer.writeStartElement(Tags.STROLCH_MODEL); + ResourceToSaxWriterVisitor toSax = new ResourceToSaxWriterVisitor(writer); + toSax.visit(resource); + writer.writeEndDocument(); + } }