[Minor] Code cleanup

This commit is contained in:
Robert von Burg 2023-07-17 17:28:50 +02:00
parent 3a625051f8
commit c9e771a9dc
Signed by: eitch
GPG Key ID: 75DB9C85C74331F7
2 changed files with 27 additions and 40 deletions

View File

@ -1,17 +1,15 @@
package li.strolch.model;
import static java.util.Collections.emptyList;
import static li.strolch.model.StrolchModelConstants.*;
import static li.strolch.model.builder.BuilderHelper.buildParamId;
import static li.strolch.model.builder.BuilderHelper.buildParamName;
import li.strolch.model.parameter.StringListParameter;
import li.strolch.model.parameter.StringParameter;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import li.strolch.model.parameter.Parameter;
import li.strolch.model.parameter.StringListParameter;
import li.strolch.model.parameter.StringParameter;
import static java.util.Collections.emptyList;
import static li.strolch.model.ModelHelper.setInterpretationAndUom;
import static li.strolch.model.builder.BuilderHelper.buildParamName;
public abstract class AbstractStrolchRootElement extends GroupedParameterizedElement implements StrolchRootElement {
@ -29,7 +27,7 @@ public abstract class AbstractStrolchRootElement extends GroupedParameterizedEle
if (relationP == null) {
String name = buildParamName(param);
relationP = new StringParameter(param, name, "");
setInterpretationAndUom(element, relationP);
setInterpretationAndUom(relationP, element.getObjectType(), element.getType());
relationsBag().addParameter(relationP);
}
@ -42,53 +40,31 @@ public abstract class AbstractStrolchRootElement extends GroupedParameterizedEle
if (relationsP == null) {
String name = buildParamName(param);
relationsP = new StringListParameter(param, name, Collections.emptyList());
setInterpretationAndUom(element, relationsP);
setInterpretationAndUom(relationsP, element.getObjectType(), element.getType());
relationsBag().addParameter(relationsP);
}
relationsP.addValueIfNotContains(element.getId());
}
private void setInterpretationAndUom(StrolchRootElement element, Parameter<?> relationP) {
switch (element.getObjectType()) {
case Tags.RESOURCE -> relationP.setInterpretation(INTERPRETATION_RESOURCE_REF);
case Tags.ORDER -> relationP.setInterpretation(INTERPRETATION_ORDER_REF);
case Tags.ACTIVITY -> relationP.setInterpretation(INTERPRETATION_ACTIVITY_REF);
default -> throw new IllegalStateException("Unexpected value: " + element.getObjectType());
}
relationP.setUom(element.getType());
}
@Override
public void setRelations(String param, List<? extends StrolchRootElement> elements) {
// validate we have same objects
List<String> objectTypes = elements.stream().map(StrolchRootElement::getObjectType).distinct()
.toList();
List<String> objectTypes = elements.stream().map(StrolchRootElement::getObjectType).distinct().toList();
List<String> types = elements.stream().map(StrolchRootElement::getType).distinct().toList();
if (objectTypes.size() != 1)
throw new IllegalStateException(
"Only allow to have one type of object: " + elements.stream().map(StrolchElement::getId)
.collect(Collectors.joining(", ")));
throw new IllegalStateException("Only allow to have one type of object: " +
elements.stream().map(StrolchElement::getId).collect(Collectors.joining(", ")));
if (types.size() != 1)
throw new IllegalStateException(
"Only allow to have one type of object: " + elements.stream().map(StrolchElement::getId)
.collect(Collectors.joining(", ")));
throw new IllegalStateException("Only allow to have one type of object: " +
elements.stream().map(StrolchElement::getId).collect(Collectors.joining(", ")));
StringListParameter relationsP = relationsBag().getParameter(param);
if (relationsP == null) {
String name = buildParamName(param);
relationsP = new StringListParameter(param, name, emptyList());
switch (objectTypes.get(0)) {
case Tags.RESOURCE -> relationsP.setInterpretation(INTERPRETATION_RESOURCE_REF);
case Tags.ORDER -> relationsP.setInterpretation(INTERPRETATION_ORDER_REF);
case Tags.ACTIVITY -> relationsP.setInterpretation(INTERPRETATION_ACTIVITY_REF);
default -> throw new IllegalStateException("Unexpected value: " + objectTypes.get(0));
}
relationsP.setUom(types.get(0));
setInterpretationAndUom(relationsP, objectTypes.get(0), types.get(0));
relationsBag().addParameter(relationsP);
}

View File

@ -1,10 +1,10 @@
package li.strolch.model;
import static li.strolch.model.StrolchModelConstants.BAG_PARAMETERS;
import static li.strolch.model.StrolchModelConstants.BAG_RELATIONS;
import li.strolch.model.parameter.Parameter;
import li.strolch.model.parameter.StringParameter;
import static li.strolch.model.StrolchModelConstants.*;
/**
* Helper class to perform often performed model commands
*/
@ -28,4 +28,15 @@ public class ModelHelper {
}
}
}
public static void setInterpretationAndUom(Parameter<?> relationP, String objectType, String elementType) {
switch (objectType) {
case Tags.RESOURCE -> relationP.setInterpretation(INTERPRETATION_RESOURCE_REF);
case Tags.ORDER -> relationP.setInterpretation(INTERPRETATION_ORDER_REF);
case Tags.ACTIVITY -> relationP.setInterpretation(INTERPRETATION_ACTIVITY_REF);
default -> throw new IllegalStateException("Unexpected value: " + objectType);
}
relationP.setUom(elementType);
}
}