From 8f50a159b1eccca6d56a5aecff40824780418203 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Sat, 4 Oct 2014 17:45:33 +0200 Subject: [PATCH] [Major] changed XML format of time value of TimedStates to be ISO8601 --- .../model/timedstate/BooleanTimedState.java | 10 ++++-- .../model/timedstate/FloatTimedState.java | 10 ++++-- .../model/timedstate/IntegerTimedState.java | 10 ++++-- .../model/timedstate/StringSetTimedState.java | 9 +++-- .../strolch/model/xml/XmlModelSaxReader.java | 14 ++++---- .../resources/data/resources/Resources.xml | 36 +++++++++---------- 6 files changed, 55 insertions(+), 34 deletions(-) diff --git a/li.strolch.model/src/main/java/li/strolch/model/timedstate/BooleanTimedState.java b/li.strolch.model/src/main/java/li/strolch/model/timedstate/BooleanTimedState.java index f77152f10..773421ff8 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/timedstate/BooleanTimedState.java +++ b/li.strolch.model/src/main/java/li/strolch/model/timedstate/BooleanTimedState.java @@ -15,6 +15,7 @@ */ package li.strolch.model.timedstate; +import java.util.Date; import java.util.SortedSet; import li.strolch.model.Tags; @@ -25,6 +26,8 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; +import ch.eitchnet.utils.iso8601.ISO8601FormatFactory; + /** * @author Robert von Burg */ @@ -50,7 +53,10 @@ public class BooleanTimedState extends AbstractStrolchTimedState { NodeList timeValueElems = element.getElementsByTagName(Tags.VALUE); for (int i = 0; i < timeValueElems.getLength(); i++) { Element timeValueElem = (Element) timeValueElems.item(i); - Long time = Long.valueOf(timeValueElem.getAttribute(Tags.TIME)); + String timeS = timeValueElem.getAttribute(Tags.TIME); + Date date = ISO8601FormatFactory.getInstance().parseDate(timeS); + long time = date.getTime(); + Boolean value = Boolean.valueOf(timeValueElem.getAttribute(Tags.VALUE)); BooleanValue booleanValue = new BooleanValue(value); this.state.getTimeEvolution().setValueAt(time, booleanValue); @@ -67,7 +73,7 @@ public class BooleanTimedState extends AbstractStrolchTimedState { Long time = timeValue.getTime(); BooleanValue value = timeValue.getValue(); Element valueElem = doc.createElement(Tags.VALUE); - valueElem.setAttribute(Tags.TIME, time.toString()); + valueElem.setAttribute(Tags.TIME, ISO8601FormatFactory.getInstance().formatDate(time)); valueElem.setAttribute(Tags.VALUE, value.getValue().toString()); stateElement.appendChild(valueElem); } diff --git a/li.strolch.model/src/main/java/li/strolch/model/timedstate/FloatTimedState.java b/li.strolch.model/src/main/java/li/strolch/model/timedstate/FloatTimedState.java index 94fab80ba..bf1748cb8 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/timedstate/FloatTimedState.java +++ b/li.strolch.model/src/main/java/li/strolch/model/timedstate/FloatTimedState.java @@ -15,6 +15,7 @@ */ package li.strolch.model.timedstate; +import java.util.Date; import java.util.SortedSet; import li.strolch.model.Tags; @@ -25,6 +26,8 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; +import ch.eitchnet.utils.iso8601.ISO8601FormatFactory; + /** * @author Robert von Burg */ @@ -50,7 +53,10 @@ public class FloatTimedState extends AbstractStrolchTimedState { NodeList timeValueElems = element.getElementsByTagName(Tags.VALUE); for (int i = 0; i < timeValueElems.getLength(); i++) { Element timeValueElem = (Element) timeValueElems.item(i); - Long time = Long.valueOf(timeValueElem.getAttribute(Tags.TIME)); + String timeS = timeValueElem.getAttribute(Tags.TIME); + Date date = ISO8601FormatFactory.getInstance().parseDate(timeS); + long time = date.getTime(); + Double value = Double.valueOf(timeValueElem.getAttribute(Tags.VALUE)); FloatValue floatValue = new FloatValue(value); this.state.getTimeEvolution().setValueAt(time, floatValue); @@ -67,7 +73,7 @@ public class FloatTimedState extends AbstractStrolchTimedState { Long time = timeValue.getTime(); FloatValue value = timeValue.getValue(); Element valueElem = doc.createElement(Tags.VALUE); - valueElem.setAttribute(Tags.TIME, time.toString()); + valueElem.setAttribute(Tags.TIME, ISO8601FormatFactory.getInstance().formatDate(time)); valueElem.setAttribute(Tags.VALUE, value.getValue().toString()); stateElement.appendChild(valueElem); } diff --git a/li.strolch.model/src/main/java/li/strolch/model/timedstate/IntegerTimedState.java b/li.strolch.model/src/main/java/li/strolch/model/timedstate/IntegerTimedState.java index 3a64db21c..dd239adad 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/timedstate/IntegerTimedState.java +++ b/li.strolch.model/src/main/java/li/strolch/model/timedstate/IntegerTimedState.java @@ -15,6 +15,7 @@ */ package li.strolch.model.timedstate; +import java.util.Date; import java.util.SortedSet; import li.strolch.model.Tags; @@ -25,6 +26,8 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; +import ch.eitchnet.utils.iso8601.ISO8601FormatFactory; + /** * @author Robert von Burg */ @@ -50,7 +53,10 @@ public class IntegerTimedState extends AbstractStrolchTimedState { NodeList timeValueElems = element.getElementsByTagName(Tags.VALUE); for (int i = 0; i < timeValueElems.getLength(); i++) { Element timeValueElem = (Element) timeValueElems.item(i); - Long time = Long.valueOf(timeValueElem.getAttribute(Tags.TIME)); + String timeS = timeValueElem.getAttribute(Tags.TIME); + Date date = ISO8601FormatFactory.getInstance().parseDate(timeS); + long time = date.getTime(); + Integer value = Integer.valueOf(timeValueElem.getAttribute(Tags.VALUE)); IntegerValue integerValue = new IntegerValue(value); this.state.getTimeEvolution().setValueAt(time, integerValue); @@ -67,7 +73,7 @@ public class IntegerTimedState extends AbstractStrolchTimedState { Long time = timeValue.getTime(); IntegerValue value = timeValue.getValue(); Element valueElem = doc.createElement(Tags.VALUE); - valueElem.setAttribute(Tags.TIME, time.toString()); + valueElem.setAttribute(Tags.TIME, ISO8601FormatFactory.getInstance().formatDate(time)); valueElem.setAttribute(Tags.VALUE, value.getValue().toString()); stateElement.appendChild(valueElem); } diff --git a/li.strolch.model/src/main/java/li/strolch/model/timedstate/StringSetTimedState.java b/li.strolch.model/src/main/java/li/strolch/model/timedstate/StringSetTimedState.java index 6e6b4c13f..72d7e6f10 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/timedstate/StringSetTimedState.java +++ b/li.strolch.model/src/main/java/li/strolch/model/timedstate/StringSetTimedState.java @@ -15,6 +15,7 @@ */ package li.strolch.model.timedstate; +import java.util.Date; import java.util.HashSet; import java.util.Iterator; import java.util.Set; @@ -29,6 +30,8 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; +import ch.eitchnet.utils.iso8601.ISO8601FormatFactory; + /** * @author Robert von Burg */ @@ -54,7 +57,9 @@ public class StringSetTimedState extends AbstractStrolchTimedState value = new HashSet<>(); @@ -90,7 +95,7 @@ public class StringSetTimedState extends AbstractStrolchTimedState - - - + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - + + +