[Major] changed XML format of time value of TimedStates to be ISO8601
This commit is contained in:
parent
c1cdfbb4ea
commit
8f50a159b1
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.model.timedstate;
|
package li.strolch.model.timedstate;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
|
|
||||||
import li.strolch.model.Tags;
|
import li.strolch.model.Tags;
|
||||||
|
@ -25,6 +26,8 @@ import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
|
|
||||||
|
import ch.eitchnet.utils.iso8601.ISO8601FormatFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*/
|
*/
|
||||||
|
@ -50,7 +53,10 @@ public class BooleanTimedState extends AbstractStrolchTimedState<BooleanValue> {
|
||||||
NodeList timeValueElems = element.getElementsByTagName(Tags.VALUE);
|
NodeList timeValueElems = element.getElementsByTagName(Tags.VALUE);
|
||||||
for (int i = 0; i < timeValueElems.getLength(); i++) {
|
for (int i = 0; i < timeValueElems.getLength(); i++) {
|
||||||
Element timeValueElem = (Element) timeValueElems.item(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));
|
Boolean value = Boolean.valueOf(timeValueElem.getAttribute(Tags.VALUE));
|
||||||
BooleanValue booleanValue = new BooleanValue(value);
|
BooleanValue booleanValue = new BooleanValue(value);
|
||||||
this.state.getTimeEvolution().setValueAt(time, booleanValue);
|
this.state.getTimeEvolution().setValueAt(time, booleanValue);
|
||||||
|
@ -67,7 +73,7 @@ public class BooleanTimedState extends AbstractStrolchTimedState<BooleanValue> {
|
||||||
Long time = timeValue.getTime();
|
Long time = timeValue.getTime();
|
||||||
BooleanValue value = timeValue.getValue();
|
BooleanValue value = timeValue.getValue();
|
||||||
Element valueElem = doc.createElement(Tags.VALUE);
|
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());
|
valueElem.setAttribute(Tags.VALUE, value.getValue().toString());
|
||||||
stateElement.appendChild(valueElem);
|
stateElement.appendChild(valueElem);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.model.timedstate;
|
package li.strolch.model.timedstate;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
|
|
||||||
import li.strolch.model.Tags;
|
import li.strolch.model.Tags;
|
||||||
|
@ -25,6 +26,8 @@ import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
|
|
||||||
|
import ch.eitchnet.utils.iso8601.ISO8601FormatFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*/
|
*/
|
||||||
|
@ -50,7 +53,10 @@ public class FloatTimedState extends AbstractStrolchTimedState<FloatValue> {
|
||||||
NodeList timeValueElems = element.getElementsByTagName(Tags.VALUE);
|
NodeList timeValueElems = element.getElementsByTagName(Tags.VALUE);
|
||||||
for (int i = 0; i < timeValueElems.getLength(); i++) {
|
for (int i = 0; i < timeValueElems.getLength(); i++) {
|
||||||
Element timeValueElem = (Element) timeValueElems.item(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));
|
Double value = Double.valueOf(timeValueElem.getAttribute(Tags.VALUE));
|
||||||
FloatValue floatValue = new FloatValue(value);
|
FloatValue floatValue = new FloatValue(value);
|
||||||
this.state.getTimeEvolution().setValueAt(time, floatValue);
|
this.state.getTimeEvolution().setValueAt(time, floatValue);
|
||||||
|
@ -67,7 +73,7 @@ public class FloatTimedState extends AbstractStrolchTimedState<FloatValue> {
|
||||||
Long time = timeValue.getTime();
|
Long time = timeValue.getTime();
|
||||||
FloatValue value = timeValue.getValue();
|
FloatValue value = timeValue.getValue();
|
||||||
Element valueElem = doc.createElement(Tags.VALUE);
|
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());
|
valueElem.setAttribute(Tags.VALUE, value.getValue().toString());
|
||||||
stateElement.appendChild(valueElem);
|
stateElement.appendChild(valueElem);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.model.timedstate;
|
package li.strolch.model.timedstate;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
|
|
||||||
import li.strolch.model.Tags;
|
import li.strolch.model.Tags;
|
||||||
|
@ -25,6 +26,8 @@ import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
|
|
||||||
|
import ch.eitchnet.utils.iso8601.ISO8601FormatFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*/
|
*/
|
||||||
|
@ -50,7 +53,10 @@ public class IntegerTimedState extends AbstractStrolchTimedState<IntegerValue> {
|
||||||
NodeList timeValueElems = element.getElementsByTagName(Tags.VALUE);
|
NodeList timeValueElems = element.getElementsByTagName(Tags.VALUE);
|
||||||
for (int i = 0; i < timeValueElems.getLength(); i++) {
|
for (int i = 0; i < timeValueElems.getLength(); i++) {
|
||||||
Element timeValueElem = (Element) timeValueElems.item(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));
|
Integer value = Integer.valueOf(timeValueElem.getAttribute(Tags.VALUE));
|
||||||
IntegerValue integerValue = new IntegerValue(value);
|
IntegerValue integerValue = new IntegerValue(value);
|
||||||
this.state.getTimeEvolution().setValueAt(time, integerValue);
|
this.state.getTimeEvolution().setValueAt(time, integerValue);
|
||||||
|
@ -67,7 +73,7 @@ public class IntegerTimedState extends AbstractStrolchTimedState<IntegerValue> {
|
||||||
Long time = timeValue.getTime();
|
Long time = timeValue.getTime();
|
||||||
IntegerValue value = timeValue.getValue();
|
IntegerValue value = timeValue.getValue();
|
||||||
Element valueElem = doc.createElement(Tags.VALUE);
|
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());
|
valueElem.setAttribute(Tags.VALUE, value.getValue().toString());
|
||||||
stateElement.appendChild(valueElem);
|
stateElement.appendChild(valueElem);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.model.timedstate;
|
package li.strolch.model.timedstate;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -29,6 +30,8 @@ import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
|
|
||||||
|
import ch.eitchnet.utils.iso8601.ISO8601FormatFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*/
|
*/
|
||||||
|
@ -54,7 +57,9 @@ public class StringSetTimedState extends AbstractStrolchTimedState<StringSetValu
|
||||||
NodeList timeValueElems = element.getElementsByTagName(Tags.VALUE);
|
NodeList timeValueElems = element.getElementsByTagName(Tags.VALUE);
|
||||||
for (int i = 0; i < timeValueElems.getLength(); i++) {
|
for (int i = 0; i < timeValueElems.getLength(); i++) {
|
||||||
Element timeValueElem = (Element) timeValueElems.item(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();
|
||||||
|
|
||||||
String valueAsString = timeValueElem.getAttribute(Tags.VALUE);
|
String valueAsString = timeValueElem.getAttribute(Tags.VALUE);
|
||||||
Set<AString> value = new HashSet<>();
|
Set<AString> value = new HashSet<>();
|
||||||
|
@ -90,7 +95,7 @@ public class StringSetTimedState extends AbstractStrolchTimedState<StringSetValu
|
||||||
String valueAsString = sb.toString();
|
String valueAsString = sb.toString();
|
||||||
|
|
||||||
Element valueElem = doc.createElement(Tags.VALUE);
|
Element valueElem = doc.createElement(Tags.VALUE);
|
||||||
valueElem.setAttribute(Tags.TIME, time.toString());
|
valueElem.setAttribute(Tags.TIME, ISO8601FormatFactory.getInstance().formatDate(time));
|
||||||
valueElem.setAttribute(Tags.VALUE, valueAsString);
|
valueElem.setAttribute(Tags.VALUE, valueAsString);
|
||||||
stateElement.appendChild(valueElem);
|
stateElement.appendChild(valueElem);
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,19 +213,18 @@ public class XmlModelSaxReader extends DefaultHandler {
|
||||||
|
|
||||||
case Tags.VALUE:
|
case Tags.VALUE:
|
||||||
String valueTime = attributes.getValue(Tags.TIME);
|
String valueTime = attributes.getValue(Tags.TIME);
|
||||||
|
Date date = ISO8601FormatFactory.getInstance().parseDate(valueTime);
|
||||||
|
long time = date.getTime();
|
||||||
String valueValue = attributes.getValue(Tags.VALUE);
|
String valueValue = attributes.getValue(Tags.VALUE);
|
||||||
switch (this.stateType) {
|
switch (this.stateType) {
|
||||||
case FloatTimedState.TYPE:
|
case FloatTimedState.TYPE:
|
||||||
((FloatTimedState) this.state).getTimeEvolution().setValueAt(Long.valueOf(valueTime),
|
((FloatTimedState) this.state).getTimeEvolution().setValueAt(time, new FloatValue(valueValue));
|
||||||
new FloatValue(valueValue));
|
|
||||||
break;
|
break;
|
||||||
case IntegerTimedState.TYPE:
|
case IntegerTimedState.TYPE:
|
||||||
((IntegerTimedState) this.state).getTimeEvolution().setValueAt(Long.valueOf(valueTime),
|
((IntegerTimedState) this.state).getTimeEvolution().setValueAt(time, new IntegerValue(valueValue));
|
||||||
new IntegerValue(valueValue));
|
|
||||||
break;
|
break;
|
||||||
case BooleanTimedState.TYPE:
|
case BooleanTimedState.TYPE:
|
||||||
((BooleanTimedState) this.state).getTimeEvolution().setValueAt(Long.valueOf(valueTime),
|
((BooleanTimedState) this.state).getTimeEvolution().setValueAt(time, new BooleanValue(valueValue));
|
||||||
new BooleanValue(valueValue));
|
|
||||||
break;
|
break;
|
||||||
case StringSetTimedState.TYPE:
|
case StringSetTimedState.TYPE:
|
||||||
|
|
||||||
|
@ -236,8 +235,7 @@ public class XmlModelSaxReader extends DefaultHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
StringSetValue stringSetValue = new StringSetValue(value);
|
StringSetValue stringSetValue = new StringSetValue(value);
|
||||||
((StringSetTimedState) this.state).getTimeEvolution().setValueAt(Long.valueOf(valueTime),
|
((StringSetTimedState) this.state).getTimeEvolution().setValueAt(time, stringSetValue);
|
||||||
stringSetValue);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -15,30 +15,30 @@
|
||||||
<Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true" />
|
<Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true" />
|
||||||
</ParameterBag>
|
</ParameterBag>
|
||||||
<TimedState Id="@booleanState" Name="Boolean State" Type="BooleanState">
|
<TimedState Id="@booleanState" Name="Boolean State" Type="BooleanState">
|
||||||
<Value Time="0" Value="false" />
|
<Value Time="1970-01-01T00:00:00.000+01:00" Value="false" />
|
||||||
<Value Time="1" Value="true" />
|
<Value Time="1970-01-01T00:01:00.000+01:00" Value="true" />
|
||||||
<Value Time="2" Value="false" />
|
<Value Time="1970-01-01T00:02:00.000+01:00" Value="false" />
|
||||||
</TimedState>
|
</TimedState>
|
||||||
<TimedState Id="@integerState" Name="Integer State" Type="IntegerState">
|
<TimedState Id="@integerState" Name="Integer State" Type="IntegerState">
|
||||||
<Value Time="0" Value="1" />
|
<Value Time="1970-01-01T00:00:00.000+01:00" Value="1" />
|
||||||
<Value Time="1" Value="2" />
|
<Value Time="1970-01-01T00:01:00.000+01:00" Value="2" />
|
||||||
<Value Time="2" Value="3" />
|
<Value Time="1970-01-01T00:02:00.000+01:00" Value="3" />
|
||||||
<Value Time="3" Value="2" />
|
<Value Time="1970-01-01T00:03:00.000+01:00" Value="2" />
|
||||||
<Value Time="4" Value="1" />
|
<Value Time="1970-01-01T00:04:00.000+01:00" Value="1" />
|
||||||
<Value Time="5" Value="0" />
|
<Value Time="1970-01-01T00:05:00.000+01:00" Value="0" />
|
||||||
</TimedState>
|
</TimedState>
|
||||||
<TimedState Id="@floatState" Name="Float State" Type="FloatState">
|
<TimedState Id="@floatState" Name="Float State" Type="FloatState">
|
||||||
<Value Time="0" Value="1.1" />
|
<Value Time="1970-01-01T00:00:00.000+01:00" Value="1.1" />
|
||||||
<Value Time="1" Value="2.2" />
|
<Value Time="1970-01-01T00:01:00.000+01:00" Value="2.2" />
|
||||||
<Value Time="2" Value="3.3" />
|
<Value Time="1970-01-01T00:02:00.000+01:00" Value="3.3" />
|
||||||
<Value Time="3" Value="2.2" />
|
<Value Time="1970-01-01T00:03:00.000+01:00" Value="2.2" />
|
||||||
<Value Time="4" Value="1.1" />
|
<Value Time="1970-01-01T00:04:00.000+01:00" Value="1.1" />
|
||||||
<Value Time="5" Value="0.0" />
|
<Value Time="1970-01-01T00:05:00.000+01:00" Value="0.0" />
|
||||||
</TimedState>
|
</TimedState>
|
||||||
<TimedState Id="@stringSetState" Name="StringSet State" Type="StringSetState">
|
<TimedState Id="@stringSetState" Name="StringSet State" Type="StringSetState">
|
||||||
<Value Time="0" Value="foo" />
|
<Value Time="1970-01-01T00:00:00.000+01:00" Value="foo" />
|
||||||
<Value Time="1" Value="foo, bar" />
|
<Value Time="1970-01-01T00:01:00.000+01:00" Value="foo, bar" />
|
||||||
<Value Time="2" Value="bar" />
|
<Value Time="1970-01-01T00:02:00.000+01:00" Value="bar" />
|
||||||
</TimedState>
|
</TimedState>
|
||||||
</Resource>
|
</Resource>
|
||||||
</StrolchModel>
|
</StrolchModel>
|
||||||
|
|
Loading…
Reference in New Issue