[Minor] catch adding parameters with no ID set

This commit is contained in:
Robert von Burg 2020-07-07 17:30:06 +02:00
parent e13ddba67c
commit 401f77b807
2 changed files with 7 additions and 2 deletions

View File

@ -17,6 +17,7 @@ package li.strolch.model;
import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toList;
import static li.strolch.model.StrolchModelConstants.*; import static li.strolch.model.StrolchModelConstants.*;
import static li.strolch.utils.helper.StringHelper.isEmpty;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -27,7 +28,6 @@ import java.util.stream.Stream;
import li.strolch.exception.StrolchException; import li.strolch.exception.StrolchException;
import li.strolch.exception.StrolchModelException; import li.strolch.exception.StrolchModelException;
import li.strolch.model.parameter.*; import li.strolch.model.parameter.*;
import li.strolch.utils.helper.StringHelper;
import li.strolch.utils.iso8601.ISO8601; import li.strolch.utils.iso8601.ISO8601;
import li.strolch.utils.time.PeriodDuration; import li.strolch.utils.time.PeriodDuration;
@ -74,7 +74,7 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
*/ */
public void setType(String type) { public void setType(String type) {
assertNotReadonly(); assertNotReadonly();
if (StringHelper.isEmpty(type)) { if (isEmpty(type)) {
String msg = "Type may not be empty on element {0}"; //$NON-NLS-1$ String msg = "Type may not be empty on element {0}"; //$NON-NLS-1$
msg = MessageFormat.format(msg, getLocator()); msg = MessageFormat.format(msg, getLocator());
throw new StrolchException(msg); throw new StrolchException(msg);
@ -778,6 +778,8 @@ public abstract class GroupedParameterizedElement extends AbstractStrolchElement
@Override @Override
public void addParameter(Parameter<?> parameter) throws StrolchException { public void addParameter(Parameter<?> parameter) throws StrolchException {
assertNotReadonly(); assertNotReadonly();
if (isEmpty(parameter.getId()))
throw new IllegalArgumentException("ID can not be empty for parameter " + parameter);
if (this.parameterBagMap == null) if (this.parameterBagMap == null)
this.parameterBagMap = new HashMap<>(1, 1.0F); this.parameterBagMap = new HashMap<>(1, 1.0F);
ParameterBag bag = this.parameterBagMap.get(BAG_PARAMETERS); ParameterBag bag = this.parameterBagMap.get(BAG_PARAMETERS);

View File

@ -17,6 +17,7 @@ package li.strolch.model;
import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toMap; import static java.util.stream.Collectors.toMap;
import static li.strolch.utils.helper.StringHelper.isEmpty;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -805,6 +806,8 @@ public abstract class ParameterizedElement extends AbstractStrolchElement {
*/ */
public void addParameter(Parameter<?> parameter) { public void addParameter(Parameter<?> parameter) {
assertNotReadonly(); assertNotReadonly();
if (isEmpty(parameter.getId()))
throw new IllegalArgumentException("ID can not be empty for parameter " + parameter);
if (this.parameterMap == null) if (this.parameterMap == null)
this.parameterMap = new HashMap<>(1, 1.0F); this.parameterMap = new HashMap<>(1, 1.0F);