[New] GroupedParameterizedElement and ParameterizedElement auto create missing params on setXxx()-methods

This commit is contained in:
Robert von Burg 2020-07-01 11:39:29 +02:00
parent 02d266f694
commit 103be2fe3c
2 changed files with 145 additions and 113 deletions

View File

@ -83,15 +83,15 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
this.type = type;
}
///
///
@Override
public String getString(String paramKey) throws StrolchModelException {
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return "";
StringParameter param = bag.getParameter(paramKey);
if (param == null)
return "";
return param.getValue();
return bag.getString(paramKey);
}
@Override
@ -105,10 +105,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return false;
BooleanParameter param = bag.getParameter(paramKey);
if (param == null)
return false;
return param.getValue();
return bag.getBoolean(paramKey);
}
@Override
@ -122,10 +119,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return 0;
IntegerParameter param = bag.getParameter(paramKey);
if (param == null)
return 0;
return param.getValue();
return bag.getInteger(paramKey);
}
@Override
@ -139,10 +133,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return 0.0D;
FloatParameter param = bag.getParameter(paramKey);
if (param == null)
return 0.0D;
return param.getValue();
return bag.getDouble(paramKey);
}
@Override
@ -156,10 +147,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return 0L;
LongParameter param = bag.getParameter(paramKey);
if (param == null)
return 0L;
return param.getValue();
return bag.getLong(paramKey);
}
@Override
@ -173,10 +161,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return ISO8601.EMPTY_VALUE_ZONED_DATE;
DateParameter param = bag.getParameter(paramKey);
if (param == null)
return ISO8601.EMPTY_VALUE_ZONED_DATE;
return param.toZonedDateTime();
return bag.getDate(paramKey);
}
@Override
@ -190,10 +175,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return ISO8601.EMPTY_VALUE_LOCAL_DATE;
DateParameter param = bag.getParameter(paramKey);
if (param == null)
return ISO8601.EMPTY_VALUE_LOCAL_DATE;
return param.toLocalDateTime();
return bag.getLocalDate(paramKey);
}
@Override
@ -207,10 +189,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return "";
TextParameter param = bag.getParameter(paramKey);
if (param == null)
return "";
return param.getValue();
return bag.getText(paramKey);
}
@Override
@ -224,10 +203,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return PeriodDuration.ZERO;
DurationParameter param = bag.getParameter(paramKey);
if (param == null)
return PeriodDuration.ZERO;
return param.getValue();
return bag.getDuration(paramKey);
}
@Override
@ -241,10 +217,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return Collections.emptyList();
StringListParameter param = bag.getParameter(paramKey);
if (param == null)
return Collections.emptyList();
return param.getValue();
return bag.getStringList(paramKey);
}
@Override
@ -258,10 +231,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return Collections.emptyList();
IntegerListParameter param = bag.getParameter(paramKey);
if (param == null)
return Collections.emptyList();
return param.getValue();
return bag.getIntegerList(paramKey);
}
@Override
@ -275,10 +245,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return Collections.emptyList();
FloatListParameter param = bag.getParameter(paramKey);
if (param == null)
return Collections.emptyList();
return param.getValue();
return bag.getDoubleList(paramKey);
}
@Override
@ -292,10 +259,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null)
return Collections.emptyList();
LongListParameter param = bag.getParameter(paramKey);
if (param == null)
return Collections.emptyList();
return param.getValue();
return bag.getLongList(paramKey);
}
@Override
@ -304,15 +268,11 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
return bag.getLongList(paramKey);
}
//
@Override
public void setString(String paramKey, String value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
StringParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValue(value);
} else {
bag.addParameter(new StringParameter(paramKey, paramKey, value));
}
defaultBag().setString(paramKey, value);
}
@Override
@ -323,7 +283,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setBoolean(String paramKey, boolean value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
BooleanParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValue(value);
@ -340,7 +300,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setInteger(String paramKey, int value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
IntegerParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValue(value);
@ -357,7 +317,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setDouble(String paramKey, double value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
FloatParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValue(value);
@ -374,7 +334,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setLong(String paramKey, long value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
LongParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValue(value);
@ -391,7 +351,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setDate(String paramKey, ZonedDateTime value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
DateParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValueFromZonedDateTime(value);
@ -408,7 +368,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setDate(String paramKey, LocalDateTime value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
DateParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValueFromLocalDateTime(value);
@ -425,7 +385,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setText(String paramKey, String value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
TextParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValue(value);
@ -442,7 +402,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setDuration(String paramKey, PeriodDuration value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
DurationParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValue(value);
@ -459,7 +419,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setStringList(String paramKey, List<String> value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
StringListParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValue(value);
@ -476,7 +436,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setIntegerList(String paramKey, List<Integer> value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
IntegerListParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValue(value);
@ -493,7 +453,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setDoubleList(String paramKey, List<Double> value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
FloatListParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValue(value);
@ -510,7 +470,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override
public void setLongList(String paramKey, List<Long> value) throws StrolchModelException {
ParameterBag bag = getOrCreateDefaultParametersBag();
ParameterBag bag = defaultBag();
LongListParameter param = bag.getParameter(paramKey);
if (param != null) {
param.setValue(value);
@ -525,7 +485,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
bag.setLongList(paramKey, value);
}
private ParameterBag getOrCreateDefaultParametersBag() {
private ParameterBag defaultBag() {
ParameterBag bag = getParameterBag(BAG_PARAMETERS, false);
if (bag == null) {
bag = new ParameterBag(BAG_PARAMETERS, TYPE_PARAMETERS, TYPE_PARAMETERS);
@ -534,6 +494,9 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
return bag;
}
///
///
@Override
public StringParameter getStringP(String paramKey) throws StrolchModelException {
ParameterBag bag = getParameterBag(BAG_PARAMETERS, true);

View File

@ -30,6 +30,7 @@ import li.strolch.exception.StrolchModelException;
import li.strolch.model.Locator.LocatorBuilder;
import li.strolch.model.parameter.*;
import li.strolch.utils.helper.StringHelper;
import li.strolch.utils.iso8601.ISO8601;
import li.strolch.utils.time.PeriodDuration;
/**
@ -86,6 +87,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
this.type = type;
}
///
///
/**
* Returns the value of the {@link StringParameter} with the given paramKey
*
@ -98,7 +102,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public String getString(String paramKey) throws StrolchModelException {
StringParameter param = getParameter(paramKey, true);
StringParameter param = getParameter(paramKey, false);
if (param == null)
return "";
return param.getValue();
}
@ -114,7 +120,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public boolean getBoolean(String paramKey) throws StrolchModelException {
BooleanParameter param = getParameter(paramKey, true);
BooleanParameter param = getParameter(paramKey, false);
if (param == null)
return false;
return param.getValue();
}
@ -130,7 +138,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public int getInteger(String paramKey) throws StrolchModelException {
IntegerParameter param = getParameter(paramKey, true);
IntegerParameter param = getParameter(paramKey, false);
if (param == null)
return 0;
return param.getValue();
}
@ -146,7 +156,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public double getDouble(String paramKey) throws StrolchModelException {
FloatParameter param = getParameter(paramKey, true);
FloatParameter param = getParameter(paramKey, false);
if (param == null)
return 0.0D;
return param.getValue();
}
@ -162,7 +174,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public long getLong(String paramKey) throws StrolchModelException {
LongParameter param = getParameter(paramKey, true);
LongParameter param = getParameter(paramKey, false);
if (param == null)
return 0L;
return param.getValue();
}
@ -178,8 +192,10 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public ZonedDateTime getDate(String paramKey) throws StrolchModelException {
DateParameter param = getParameter(paramKey, true);
return param.toZonedDateTime();
DateParameter param = getParameter(paramKey, false);
if (param == null)
return ISO8601.EMPTY_VALUE_ZONED_DATE;
return param.getValueZdt();
}
/**
@ -194,8 +210,10 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public LocalDateTime getLocalDate(String paramKey) throws StrolchModelException {
DateParameter param = getParameter(paramKey, true);
return param.toLocalDateTime();
DateParameter param = getParameter(paramKey, false);
if (param == null)
return ISO8601.EMPTY_VALUE_LOCAL_DATE;
return param.getValueLdt();
}
/**
@ -210,7 +228,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public String getText(String paramKey) throws StrolchModelException {
TextParameter param = getParameter(paramKey, true);
TextParameter param = getParameter(paramKey, false);
if (param == null)
return "";
return param.getValue();
}
@ -226,7 +246,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public PeriodDuration getDuration(String paramKey) throws StrolchModelException {
DurationParameter param = getParameter(paramKey, true);
DurationParameter param = getParameter(paramKey, false);
if (param == null)
return PeriodDuration.ZERO;
return param.getValue();
}
@ -242,7 +264,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public List<String> getStringList(String paramKey) throws StrolchModelException {
StringListParameter param = getParameter(paramKey, true);
StringListParameter param = getParameter(paramKey, false);
if (param == null)
return Collections.emptyList();
return param.getValue();
}
@ -258,7 +282,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public List<Integer> getIntegerList(String paramKey) throws StrolchModelException {
IntegerListParameter param = getParameter(paramKey, true);
IntegerListParameter param = getParameter(paramKey, false);
if (param == null)
return Collections.emptyList();
return param.getValue();
}
@ -274,7 +300,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public List<Double> getDoubleList(String paramKey) throws StrolchModelException {
FloatListParameter param = getParameter(paramKey, true);
FloatListParameter param = getParameter(paramKey, false);
if (param == null)
return Collections.emptyList();
return param.getValue();
}
@ -290,7 +318,9 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public List<Long> getLongList(String paramKey) throws StrolchModelException {
LongListParameter param = getParameter(paramKey, true);
LongListParameter param = getParameter(paramKey, false);
if (param == null)
return Collections.emptyList();
return param.getValue();
}
@ -306,8 +336,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setString(String paramKey, String value) throws StrolchModelException {
StringParameter param = getParameter(paramKey, true);
param.setValue(value);
StringParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new StringParameter(paramKey, paramKey, value));
else
param.setValue(value);
}
/**
@ -322,8 +355,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setBoolean(String paramKey, boolean value) throws StrolchModelException {
BooleanParameter param = getParameter(paramKey, true);
param.setValue(value);
BooleanParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new BooleanParameter(paramKey, paramKey, value));
else
param.setValue(value);
}
/**
@ -338,8 +374,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setInteger(String paramKey, int value) throws StrolchModelException {
IntegerParameter param = getParameter(paramKey, true);
param.setValue(value);
IntegerParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new IntegerParameter(paramKey, paramKey, value));
else
param.setValue(value);
}
/**
@ -354,8 +393,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setDouble(String paramKey, double value) throws StrolchModelException {
FloatParameter param = getParameter(paramKey, true);
param.setValue(value);
FloatParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new FloatParameter(paramKey, paramKey, value));
else
param.setValue(value);
}
/**
@ -370,8 +412,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setLong(String paramKey, long value) throws StrolchModelException {
LongParameter param = getParameter(paramKey, true);
param.setValue(value);
LongParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new LongParameter(paramKey, paramKey, value));
else
param.setValue(value);
}
/**
@ -386,8 +431,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setDate(String paramKey, ZonedDateTime value) throws StrolchModelException {
DateParameter param = getParameter(paramKey, true);
param.setValueFromZonedDateTime(value);
DateParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new DateParameter(paramKey, paramKey, value));
else
param.setValueFromZonedDateTime(value);
}
/**
@ -402,8 +450,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setDate(String paramKey, LocalDateTime value) throws StrolchModelException {
DateParameter param = getParameter(paramKey, true);
param.setValueFromLocalDateTime(value);
DateParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new DateParameter(paramKey, paramKey, value));
else
param.setValueFromLocalDateTime(value);
}
/**
@ -418,8 +469,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setText(String paramKey, String value) throws StrolchModelException {
TextParameter param = getParameter(paramKey, true);
param.setValue(value);
TextParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new TextParameter(paramKey, paramKey, value));
else
param.setValue(value);
}
/**
@ -434,8 +488,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setDuration(String paramKey, PeriodDuration value) throws StrolchModelException {
DurationParameter param = getParameter(paramKey, true);
param.setValue(value);
DurationParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new DurationParameter(paramKey, paramKey, value));
else
param.setValue(value);
}
/**
@ -450,8 +507,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setStringList(String paramKey, List<String> value) throws StrolchModelException {
StringListParameter param = getParameter(paramKey, true);
param.setValue(value);
StringListParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new StringListParameter(paramKey, paramKey, value));
else
param.setValue(value);
}
/**
@ -466,8 +526,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setIntegerList(String paramKey, List<Integer> value) throws StrolchModelException {
IntegerListParameter param = getParameter(paramKey, true);
param.setValue(value);
IntegerListParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new IntegerListParameter(paramKey, paramKey, value));
else
param.setValue(value);
}
/**
@ -482,8 +545,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setDoubleList(String paramKey, List<Double> value) throws StrolchModelException {
FloatListParameter param = getParameter(paramKey, true);
param.setValue(value);
FloatListParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new FloatListParameter(paramKey, paramKey, value));
else
param.setValue(value);
}
/**
@ -498,8 +564,11 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
* if the parameter does not exist
*/
public void setLongList(String paramKey, List<Long> value) throws StrolchModelException {
LongListParameter param = getParameter(paramKey, true);
param.setValue(value);
LongListParameter param = getParameter(paramKey, false);
if (param == null)
addParameter(new LongListParameter(paramKey, paramKey, value));
else
param.setValue(value);
}
///