[Minor] Code cleanup
This commit is contained in:
parent
3a625051f8
commit
c9e771a9dc
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue