diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/BooleanParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/BooleanParameter.java index 2015a9821..eb1a278c5 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/BooleanParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/BooleanParameter.java @@ -69,6 +69,16 @@ public class BooleanParameter extends AbstractParameter { setValue(parseFromString(valueAsString)); } + /** + * Sets the value to false + * + * @see Parameter#clearValue() + */ + @Override + public void clearValue() { + this.value = false; + } + @Override public String getType() { return StrolchValueType.BOOLEAN.getType(); diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/DateParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/DateParameter.java index f99048aa6..197ad8e01 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/DateParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/DateParameter.java @@ -71,6 +71,16 @@ public class DateParameter extends AbstractParameter { setValue(parseFromString(valueAsString)); } + /** + * Sets the value to 1970-01-01 (unix time 0) + * + * @see Parameter#clearValue() + */ + @Override + public void clearValue() { + this.value = ISO8601FormatFactory.getInstance().getDateFormat().parse("-"); + } + @Override public String getType() { return StrolchValueType.DATE.getType(); @@ -95,7 +105,7 @@ public class DateParameter extends AbstractParameter { public static Date parseFromString(String valueS) { return ISO8601FormatFactory.getInstance().getDateFormat().parse(valueS); } - + @Override public int compareTo(Parameter o) { DBC.PRE.assertEquals("Not same Parameter types!", this.getType(), o.getType()); diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/DurationParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/DurationParameter.java index 3f60d7a60..2d4fb25ef 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/DurationParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/DurationParameter.java @@ -64,6 +64,16 @@ public class DurationParameter extends AbstractParameter { this.value = value; } + /** + * Sets the value to 0 + * + * @see Parameter#clearValue() + */ + @Override + public void clearValue() { + this.value = 0L; + } + @Override public void setValueFromString(String valueAsString) { setValue(parseFromString(valueAsString)); diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/FloatListParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/FloatListParameter.java index cb641a5e6..84a9ce307 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/FloatListParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/FloatListParameter.java @@ -67,7 +67,8 @@ public class FloatListParameter extends AbstractParameter> implemen sb.append(iter.next()); if (iter.hasNext()) { - sb.append(VALUE_SEPARATOR); + sb.append(VALUE_SEPARATOR2); + sb.append(" "); } } @@ -140,7 +141,12 @@ public class FloatListParameter extends AbstractParameter> implemen return Collections.emptyList(); } - String[] valueArr = value.split(VALUE_SEPARATOR); + String[] valueArr; + if (value.contains(VALUE_SEPARATOR1)) + valueArr = value.split(VALUE_SEPARATOR1); + else + valueArr = value.split(VALUE_SEPARATOR2); + List values = new ArrayList<>(); for (String val : valueArr) { values.add(Double.valueOf(val.trim())); diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/FloatParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/FloatParameter.java index b4efa6b25..eec001acb 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/FloatParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/FloatParameter.java @@ -65,6 +65,16 @@ public class FloatParameter extends AbstractParameter { this.value = value; } + /** + * Sets the value to 0 + * + * @see Parameter#clearValue() + */ + @Override + public void clearValue() { + this.value = 0.0D; + } + @Override public void setValueFromString(String valueAsString) { setValue(parseFromString(valueAsString)); diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/IntegerListParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/IntegerListParameter.java index da510ed81..e17bc29bc 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/IntegerListParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/IntegerListParameter.java @@ -67,7 +67,8 @@ public class IntegerListParameter extends AbstractParameter> imple sb.append(iter.next()); if (iter.hasNext()) { - sb.append(VALUE_SEPARATOR); + sb.append(VALUE_SEPARATOR2); + sb.append(" "); } } @@ -140,7 +141,12 @@ public class IntegerListParameter extends AbstractParameter> imple return Collections.emptyList(); } - String[] valueArr = value.split(VALUE_SEPARATOR); + String[] valueArr; + if (value.contains(VALUE_SEPARATOR1)) + valueArr = value.split(VALUE_SEPARATOR1); + else + valueArr = value.split(VALUE_SEPARATOR2); + List values = new ArrayList<>(); for (String val : valueArr) { values.add(Integer.valueOf(val.trim())); diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/IntegerParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/IntegerParameter.java index b1e17ca62..18b28d2f5 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/IntegerParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/IntegerParameter.java @@ -69,6 +69,16 @@ public class IntegerParameter extends AbstractParameter { this.value = value; } + /** + * Sets the value to 0 + * + * @see Parameter#clearValue() + */ + @Override + public void clearValue() { + this.value = 0; + } + @Override public void setValueFromString(String valueAsString) { setValue(parseFromString(valueAsString)); diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/ListParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/ListParameter.java index a800fcdc3..25a43ff91 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/ListParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/ListParameter.java @@ -18,12 +18,14 @@ package li.strolch.model.parameter; import java.util.List; /** + * A {@link Parameter} which supports a list of elements. + * * @author Robert von Burg - * */ public interface ListParameter extends Parameter> { - public static final String VALUE_SEPARATOR = ";"; //$NON-NLS-1$ + public static final String VALUE_SEPARATOR1 = ";"; //$NON-NLS-1$ + public static final String VALUE_SEPARATOR2 = ","; //$NON-NLS-1$ /** * Adds a single value to the {@link List} of values @@ -44,7 +46,7 @@ public interface ListParameter extends Parameter> { public boolean removeValue(E value); /** - * Clears the list of values + * Clears the list of values, i.e the list of values is empty after this call */ public void clearValue(); diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/LongListParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/LongListParameter.java index b3f55ad92..d6ee515a5 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/LongListParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/LongListParameter.java @@ -67,7 +67,8 @@ public class LongListParameter extends AbstractParameter> implements sb.append(iter.next()); if (iter.hasNext()) { - sb.append(VALUE_SEPARATOR); + sb.append(VALUE_SEPARATOR2); + sb.append(" "); } } @@ -140,7 +141,12 @@ public class LongListParameter extends AbstractParameter> implements return Collections.emptyList(); } - String[] valueArr = value.split(VALUE_SEPARATOR); + String[] valueArr; + if (value.contains(VALUE_SEPARATOR1)) + valueArr = value.split(VALUE_SEPARATOR1); + else + valueArr = value.split(VALUE_SEPARATOR2); + List values = new ArrayList<>(); for (String val : valueArr) { values.add(Long.valueOf(val.trim())); diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/LongParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/LongParameter.java index f6d876155..d8a068cf2 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/LongParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/LongParameter.java @@ -64,6 +64,16 @@ public class LongParameter extends AbstractParameter { this.value = value; } + /** + * Sets the value to 0 + * + * @see Parameter#clearValue() + */ + @Override + public void clearValue() { + this.value = 0L; + } + @Override public void setValueFromString(String valueAsString) { setValue(parseFromString(valueAsString)); @@ -93,7 +103,7 @@ public class LongParameter extends AbstractParameter { public static Long parseFromString(String valueS) { return Long.valueOf(valueS); } - + @Override public int compareTo(Parameter o) { DBC.PRE.assertEquals("Not same Parameter types!", this.getType(), o.getType()); diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/Parameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/Parameter.java index 505afd54f..32db69d88 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/Parameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/Parameter.java @@ -54,6 +54,11 @@ public interface Parameter extends StrolchElement, Comparable> { */ public void setValue(T value); + /** + * Clears the value, dependent on the concrete class + */ + public void clearValue(); + /** * get the hidden attribute * @@ -141,12 +146,12 @@ public interface Parameter extends StrolchElement, Comparable> { @Override public boolean equals(Object obj); - + @Override public int compareTo(Parameter o); @Override public Parameter getClone(); - public U accept(ParameterVisitor visitor); + public U accept(ParameterVisitor visitor); } diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/StringListParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/StringListParameter.java index 8ef1685af..18e1311b8 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/StringListParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/StringListParameter.java @@ -67,7 +67,8 @@ public class StringListParameter extends AbstractParameter> impleme sb.append(iter.next()); if (iter.hasNext()) { - sb.append(VALUE_SEPARATOR); + sb.append(VALUE_SEPARATOR2); + sb.append(" "); } } @@ -140,7 +141,12 @@ public class StringListParameter extends AbstractParameter> impleme return Collections.emptyList(); } - String[] valueArr = value.split(VALUE_SEPARATOR); + String[] valueArr; + if (value.contains(VALUE_SEPARATOR1)) + valueArr = value.split(VALUE_SEPARATOR1); + else + valueArr = value.split(VALUE_SEPARATOR2); + List values = new ArrayList<>(); for (String val : valueArr) { values.add(val.trim()); diff --git a/li.strolch.model/src/main/java/li/strolch/model/parameter/StringParameter.java b/li.strolch.model/src/main/java/li/strolch/model/parameter/StringParameter.java index 516ed4597..b6cd8979e 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/parameter/StringParameter.java +++ b/li.strolch.model/src/main/java/li/strolch/model/parameter/StringParameter.java @@ -25,10 +25,9 @@ import li.strolch.utils.dbc.DBC; */ public class StringParameter extends AbstractParameter { - public static final String UNDEFINED_VALUE = "-"; //$NON-NLS-1$ private static final long serialVersionUID = 0L; - private String value = UNDEFINED_VALUE; + private String value = ""; /** * Empty constructor @@ -71,6 +70,16 @@ public class StringParameter extends AbstractParameter { this.value = value; } + /** + * Sets the value to the empty string + * + * @see Parameter#clearValue() + */ + @Override + public void clearValue() { + this.value = ""; + } + @Override public void setValueFromString(String valueAsString) { setValue(valueAsString); diff --git a/li.strolch.model/src/test/java/li/strolch/model/ModelTest.java b/li.strolch.model/src/test/java/li/strolch/model/ModelTest.java index 0ad641f3a..8aa8facce 100644 --- a/li.strolch.model/src/test/java/li/strolch/model/ModelTest.java +++ b/li.strolch.model/src/test/java/li/strolch/model/ModelTest.java @@ -421,6 +421,15 @@ public class ModelTest { stringList.add("Hello"); stringList.add("World"); assertEquals(stringList, stringListP.getValue()); + assertEquals("Hello, World", stringListP.getValueAsString()); + stringListP.setValueFromString("a;b"); + assertEquals("a, b", stringListP.getValueAsString()); + stringListP.setValueFromString("a,b"); + assertEquals("a, b", stringListP.getValueAsString()); + stringListP.clearValue(); + assertEquals("", stringListP.getValueAsString()); + stringListP.addValue("a"); + assertEquals("a", stringListP.getValueAsString()); IntegerListParameter intListP = bag.getParameter(PARAM_LIST_INTEGER_ID); assertNotNull("IntegerList Param missing with id " + PARAM_LIST_INTEGER_ID, intListP); @@ -429,6 +438,15 @@ public class ModelTest { intList.add(10); intList.add(15); assertEquals(intList, intListP.getValue()); + assertEquals("5, 10, 15", intListP.getValueAsString()); + intListP.setValueFromString("4;45"); + assertEquals("4, 45", intListP.getValueAsString()); + intListP.setValueFromString("4,45"); + assertEquals("4, 45", intListP.getValueAsString()); + intListP.clearValue(); + assertEquals("", intListP.getValueAsString()); + intListP.addValue(55); + assertEquals("55", intListP.getValueAsString()); FloatListParameter floatListP = bag.getParameter(PARAM_LIST_FLOAT_ID); assertNotNull("FloatList Param missing with id " + PARAM_LIST_FLOAT_ID, floatListP); @@ -437,6 +455,15 @@ public class ModelTest { floatList.add(11.0); floatList.add(16.0); assertEquals(floatList, floatListP.getValue()); + assertEquals("6.0, 11.0, 16.0", floatListP.getValueAsString()); + floatListP.setValueFromString("4.2;4.1"); + assertEquals("4.2, 4.1", floatListP.getValueAsString()); + floatListP.setValueFromString("4.2,4.1"); + assertEquals("4.2, 4.1", floatListP.getValueAsString()); + floatListP.clearValue(); + assertEquals("", floatListP.getValueAsString()); + floatListP.addValue(55.5); + assertEquals("55.5", floatListP.getValueAsString()); LongListParameter longListP = bag.getParameter(PARAM_LIST_LONG_ID); assertNotNull("LongList Param missing with id " + PARAM_LIST_LONG_ID, longListP); @@ -445,6 +472,15 @@ public class ModelTest { longList.add(12L); longList.add(17L); assertEquals(longList, longListP.getValue()); + assertEquals("7, 12, 17", longListP.getValueAsString()); + longListP.setValueFromString("4;4"); + assertEquals("4, 4", longListP.getValueAsString()); + longListP.setValueFromString("4,4"); + assertEquals("4, 4", longListP.getValueAsString()); + longListP.clearValue(); + assertEquals("", longListP.getValueAsString()); + longListP.addValue(55L); + assertEquals("55", longListP.getValueAsString()); } /**