From 103be2fe3cf33aa25bfab02f88186de953b58b1b Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Wed, 1 Jul 2020 11:39:29 +0200 Subject: [PATCH] [New] GroupedParameterizedElement and ParameterizedElement auto create missing params on setXxx()-methods --- .../model/GroupedParameterizedElement.java | 107 ++++--------- .../strolch/model/ParameterizedElement.java | 151 +++++++++++++----- 2 files changed, 145 insertions(+), 113 deletions(-) diff --git a/li.strolch.model/src/main/java/li/strolch/model/GroupedParameterizedElement.java b/li.strolch.model/src/main/java/li/strolch/model/GroupedParameterizedElement.java index 5667cd63f..e399438a5 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/GroupedParameterizedElement.java +++ b/li.strolch.model/src/main/java/li/strolch/model/GroupedParameterizedElement.java @@ -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 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 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 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 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); diff --git a/li.strolch.model/src/main/java/li/strolch/model/ParameterizedElement.java b/li.strolch.model/src/main/java/li/strolch/model/ParameterizedElement.java index c653a7dd8..dd534ade6 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/ParameterizedElement.java +++ b/li.strolch.model/src/main/java/li/strolch/model/ParameterizedElement.java @@ -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 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 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 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 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 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 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 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 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); } ///