Skip to content
Snippets Groups Projects
Commit 75b3b706 authored by Jonas Blatt's avatar Jonas Blatt :ant:
Browse files

Add vdmn model structure for inputData, names and labels

parent d6a94807
No related branches found
No related tags found
No related merge requests found
Showing
with 221 additions and 16 deletions
package de.unikoblenz.fgbks.core.dmn.domain.ids;
@JsonIdentifier("ruleId")
public class InputDataId extends AbstractId {
public InputDataId(InputDataId initialValue) {
this(initialValue.getValue());
}
public InputDataId(String initialValue) {
super(initialValue);
}
}
......@@ -2,18 +2,23 @@ package de.unikoblenz.fgbks.core.dmn.domain.vdmn;
import de.unikoblenz.fgbks.core.dmn.domain.ids.ColumnId;
import java.util.List;
import java.util.Optional;
public interface VDmnColumn extends VDmnElement {
VDmnDecisionTable getDmnDecisionTable();
List<String> getPredefinedValues();
Optional<List<String>> getPredefinedValues();
default ColumnId getColumnId() {
return (ColumnId) getId();
}
Optional<String> getName();
Optional<String> getLabel();
VTypeRef getTypeRef();
List<VDmnValue> getValues();
default ColumnId getColumnId() {
return (ColumnId) getId();
}
}
package de.unikoblenz.fgbks.core.dmn.domain.vdmn;
import de.unikoblenz.fgbks.core.dmn.domain.ids.DecisionId;
import java.util.List;
public interface VDmnDecision extends VDmnElement {
VDmnDefinition getDmnDefinition();
public interface VDmnDecision extends VDmnNode {
default DecisionId getDecisionId() {
return (DecisionId) getId();
}
List<VDmnNode> getInformationRequirements();
VDmnDecisionTable getDmnDecisionTable();
}
......@@ -6,6 +6,10 @@ import java.util.List;
public interface VDmnInputColumn extends VDmnColumn {
// For future work:
// List<VDmnInputColumn> getConnectedOutputColumns();
// List<VDmnNode> getConnectedNodes();
default InputExpressionId getInputExpressionId() {
return (InputExpressionId) getId();
}
......
package de.unikoblenz.fgbks.core.dmn.domain.vdmn;
import de.unikoblenz.fgbks.core.dmn.domain.ids.InputDataId;
public interface VDmnInputData extends VDmnNode {
default InputDataId getDecisionId() {
return (InputDataId) getId();
}
}
package de.unikoblenz.fgbks.core.dmn.domain.vdmn;
import java.util.List;
import java.util.Optional;
public interface VDmnNode extends VDmnElement {
VDmnDefinition getDmnDefinition();
List<VDmnDecision> getInformationProvidingDecisions();
Optional<String> getName();
}
......@@ -5,6 +5,10 @@ import java.util.List;
public interface VDmnOutputColumn extends VDmnColumn {
// For future work:
// List<VDmnInputColumn> getConnectedInputColumns();
// List<VDmnNode> getConnectedNodes();
default OutputId getOutputId() {
return (OutputId) getColumnId();
}
......
......@@ -9,14 +9,16 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
public abstract class VDmnColumnImpl extends AbstractVDmnElement implements VDmnColumn {
public abstract class AbstractVDmnColumnImpl extends AbstractVDmnElement implements VDmnColumn {
protected VDmnDecisionTable dmnDecisionTable;
protected VTypeRef typeRef;
protected List<VDmnValue> values;
protected List<String> predefinedValues;
protected String name;
protected String label;
protected VDmnColumnImpl() {
protected AbstractVDmnColumnImpl() {
values = new ArrayList<>();
predefinedValues = new ArrayList<>();
}
......@@ -43,4 +45,14 @@ public abstract class VDmnColumnImpl extends AbstractVDmnElement implements VDmn
public List<VDmnValue> getValues() {
return Collections.unmodifiableList(values);
}
@Override
public Optional<String> getName() {
return Optional.ofNullable(name);
}
@Override
public Optional<String> getLabel() {
return Optional.ofNullable(label);
}
}
package de.unikoblenz.fgbks.core.dmn.domain.vdmn.impl;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnDecision;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnDefinition;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnNode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
public abstract class AbstractVDmnNode extends AbstractVDmnElement implements VDmnNode {
protected VDmnDefinition dmnDefinition;
protected List<VDmnDecision> informationProvidingDecisions;
protected String name;
protected AbstractVDmnNode() {
informationProvidingDecisions = new ArrayList<>();
}
@Override
public VDmnDefinition getDmnDefinition() {
return dmnDefinition;
}
@Override
public List<VDmnDecision> getInformationProvidingDecisions() {
return Collections.unmodifiableList(informationProvidingDecisions);
}
@Override
public Optional<String> getName() {
return Optional.ofNullable(name);
}
}
......@@ -4,18 +4,25 @@ import de.unikoblenz.fgbks.core.dmn.domain.ids.DecisionId;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnDecision;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnDecisionTable;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnDefinition;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnNode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.apache.commons.lang3.Validate;
public class VDmnDecisionImpl extends AbstractVDmnElement implements VDmnDecision {
public class VDmnDecisionImpl extends AbstractVDmnNode implements VDmnDecision {
private VDmnDefinition dmnDefinition;
private VDmnDecisionTable dmnDecisionTable;
private List<VDmnNode> informationRequirements;
private VDmnDecisionImpl() {}
private VDmnDecisionImpl() {
super();
informationRequirements = new ArrayList<>();
}
@Override
public VDmnDefinition getDmnDefinition() {
return dmnDefinition;
public List<VDmnNode> getInformationRequirements() {
return Collections.unmodifiableList(informationRequirements);
}
@Override
......@@ -51,6 +58,42 @@ public class VDmnDecisionImpl extends AbstractVDmnElement implements VDmnDecisio
return this;
}
public Builder addInformationRequirements(VDmnNode vDmnNode) {
value.informationRequirements.add(Validate.notNull(vDmnNode));
return this;
}
public Builder addInformationRequirementsFromBuilder(
VDmnDecisionImpl.Builder vDmnDecisionBuilder) {
addInformationRequirements(vDmnDecisionBuilder.getUnbuildValue());
vDmnDecisionBuilder.addInformationProvidingDecisions(value);
return this;
}
public Builder addInformationRequirementsFromBuilder(
VDmnInputDataImpl.Builder vDmnInputDataBuilder) {
addInformationRequirements(vDmnInputDataBuilder.getUnbuildValue());
vDmnInputDataBuilder.addInformationProvidingDecisions(value);
return this;
}
public Builder addInformationProvidingDecisions(VDmnDecision dmnDecision) {
value.informationProvidingDecisions.add(Validate.notNull(dmnDecision));
return this;
}
public Builder addInformationProvidingDecisionsFromBuilder(
VDmnDecisionImpl.Builder vDmnDecisionBuilder) {
addInformationProvidingDecisions(vDmnDecisionBuilder.getUnbuildValue());
vDmnDecisionBuilder.addInformationRequirements(value);
return this;
}
public Builder withName(String name) {
value.name = name;
return this;
}
@Override
protected void validate() {
super.validate();
......
......@@ -8,7 +8,7 @@ import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnInputValue;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VTypeRef;
import org.apache.commons.lang3.Validate;
public class VDmnInputColumnImpl extends VDmnColumnImpl implements VDmnInputColumn {
public class VDmnInputColumnImpl extends AbstractVDmnColumnImpl implements VDmnInputColumn {
private InputExpressionId inputExpressionId;
......@@ -47,6 +47,11 @@ public class VDmnInputColumnImpl extends VDmnColumnImpl implements VDmnInputColu
return this;
}
public Builder withName(String name) {
value.name = name;
return this;
}
public Builder addValue(VDmnInputValue dmnValue) {
value.values.add(Validate.notNull(dmnValue));
return this;
......
package de.unikoblenz.fgbks.core.dmn.domain.vdmn.impl;
import de.unikoblenz.fgbks.core.dmn.domain.ids.InputDataId;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnDecision;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnDefinition;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnInputData;
import org.apache.commons.lang3.Validate;
public class VDmnInputDataImpl extends AbstractVDmnNode implements VDmnInputData {
private VDmnInputDataImpl() {
super();
}
public static Builder getBuilder() {
return new VDmnInputDataImpl().new Builder();
}
public class Builder extends DmnElementBuilder<VDmnInputDataImpl> {
public Builder withDmnDefinition(VDmnDefinition dmnDefinition) {
value.dmnDefinition = dmnDefinition;
return this;
}
public Builder withInputDataId(InputDataId inputDataId) {
value.id = inputDataId;
return this;
}
public Builder addInformationProvidingDecisions(VDmnDecision dmnDecision) {
value.informationProvidingDecisions.add(Validate.notNull(dmnDecision));
return this;
}
public Builder addInformationProvidingDecisionsFromBuilder(
VDmnDecisionImpl.Builder vDmnDecisionBuilder) {
addInformationProvidingDecisions(vDmnDecisionBuilder.getUnbuildValue());
vDmnDecisionBuilder.addInformationRequirements(value);
return this;
}
public Builder withName(String name) {
value.name = name;
return this;
}
@Override
protected void validate() {
super.validate();
Validate.notNull(value.dmnDefinition);
Validate.notNull(value.id);
}
}
}
......@@ -7,7 +7,7 @@ import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnOutputValue;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VTypeRef;
import org.apache.commons.lang3.Validate;
public class VDmnOutputColumnImpl extends VDmnColumnImpl implements VDmnOutputColumn {
public class VDmnOutputColumnImpl extends AbstractVDmnColumnImpl implements VDmnOutputColumn {
private VDmnOutputColumnImpl() {
super();
......@@ -39,6 +39,11 @@ public class VDmnOutputColumnImpl extends VDmnColumnImpl implements VDmnOutputCo
return this;
}
public Builder withName(String name) {
value.name = name;
return this;
}
public Builder addValueFromBuilder(VDmnOutputValueImpl.Builder dmnValueBuilder) {
addValue(Validate.notNull(dmnValueBuilder.getUnbuildValue()));
dmnValueBuilder.withDmnOutputColumn(value);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment