diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnColumn.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnColumn.java index 7596d15e4d26dfae7ad6f034bbbf4bdb5f517fde..0368d782ac59edbf3637b768ca38dd0fc16b0903 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnColumn.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnColumn.java @@ -7,28 +7,78 @@ import de.unikoblenz.fgbks.core.dmn.domain.ids.ColumnId; import java.util.List; import java.util.Optional; +/** + * A column is a abstract interface for the {@link VDmnInputColumn} and {@link VDmnOutputColumn}. A + * column defines the {@link VTypeRef} of the containing values. + */ public interface VDmnColumn extends VDmnElement { + /** + * Get the {@link VDmnDecisionTable}. + * + * @return the {@link VDmnDecisionTable} + */ VDmnDecisionTable getDmnDecisionTable(); + /** + * Get the list of predefined {@link StringValue}s, if the column has the type {@link + * VTypeRef#STRING} and the model contains these values. + * + * @return the list of {@link StringValue}s or an empty optional + */ Optional<List<StringValue>> getPredefinedValues(); + /** + * Get the {@link Name}, if present. + * + * @return the {@link Name} or an empty optional + */ Optional<Name> getName(); + /** + * Get the {@link Label}, if present. + * + * @return the {@link Label} or an empty optional + */ Optional<Label> getLabel(); + /** + * Get the {@link VTypeRef}. + * + * @return the {@link VTypeRef} + */ VTypeRef getTypeRef(); + /** + * Get the list of {@link VDmnValue}s. + * + * @return the list of {@link VDmnValue}s + */ List<VDmnValue> getValues(); + /** + * Get the {@link ColumnId}. + * + * @return the {@link ColumnId} + */ default ColumnId getColumnId() { return (ColumnId) getId(); } + /** + * Get the {@link VDmnDecision}. + * + * @return the {@link VDmnDecision} + */ default VDmnDecision getDmnDecision() { return getDmnDecisionTable().getDmnDecision(); } + /** + * Get the {@link VDmnDefinition}. + * + * @return the {@link VDmnDefinition} + */ default VDmnDefinition getDmnDefinition() { return getDmnDecisionTable().getDmnDefinition(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDecision.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDecision.java index 449cb4eedcca243e2878980e967965053039e4b7..b74d6f0767beb0519e3fd64d3b0a27574fc74fa4 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDecision.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDecision.java @@ -3,8 +3,18 @@ package de.unikoblenz.fgbks.core.dmn.domain.vdmn; import de.unikoblenz.fgbks.core.dmn.domain.ids.DecisionId; import java.util.List; +/** + * The decision node contains the {@link VDmnDecisionTable} and a list of {@link VDmnNode}s, which + * are information requirements for the decision. + */ public interface VDmnDecision extends VDmnNode { + /** + * Get the list of {@link VDmnNode}, which are are information requirements for the decision. See + * also {@link VDmnNode#getInformationProvidingDecisions()}. + * + * @return the list of {@link VDmnNode}s + */ List<VDmnNode> getDmnInformationRequirements(); VDmnDecisionTable getDmnDecisionTable(); diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDecisionTable.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDecisionTable.java index 7636ef884ebce9ea9644806287690575f4a778ed..ad6519591394a907bcc4aaa3e89bc30e74a4b822 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDecisionTable.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDecisionTable.java @@ -1,33 +1,78 @@ package de.unikoblenz.fgbks.core.dmn.domain.vdmn; import de.unikoblenz.fgbks.core.dmn.domain.ids.DecisionTableId; +import de.unikoblenz.fgbks.core.dmn.domain.ids.DefinitionId; import de.unikoblenz.fgbks.core.dmn.domain.ids.RuleId; import java.util.List; import java.util.stream.Collectors; import org.camunda.bpm.model.dmn.HitPolicy; +/** + * The decision table contains a list of {@link VDmnColumn}s ({@link VDmnInputColumn}s and {@link + * VDmnOutputColumn}s) and all {@link VDmnRule}s of the table. + */ public interface VDmnDecisionTable extends VDmnElement { + /** + * Get the {@link VDmnDecision} of the decision table. + * + * @return the {@link VDmnDecision} + */ VDmnDecision getDmnDecision(); + /** + * Get the {@link HitPolicy} of the decision table. + * + * @return the {@link HitPolicy} + */ HitPolicy getHitPolicy(); + /** + * Get all {@link VDmnOutputColumn}s of the decision table. + * + * @return a list of {@link VDmnOutputColumn}s + */ List<VDmnOutputColumn> getOutputColumns(); + /** + * Get all {@link VDmnInputColumn}s of the decision table. + * + * @return a list of {@link VDmnInputColumn}s + */ List<VDmnInputColumn> getInputColumns(); + /** + * Get all {@link VDmnRule}s of the decision table. + * + * @return a list of {@link VDmnRule}s + */ List<VDmnRule> getRules(); + /** + * Get all {@link RuleId}s of the decision table. + * + * @return a list of {@link RuleId}s + */ default List<RuleId> getRulesIds() { return getRules().stream() .map(VDmnRule::getRuleId) .collect(Collectors.toList()); // TODO optimize (e.g. cache) } + /** + * Get the {@link DecisionTableId}. + * + * @return the {@link DecisionTableId} + */ default DecisionTableId getDecisionTableId() { return (DecisionTableId) getId(); } + /** + * Get the {@link DefinitionId}. + * + * @return the {@link DefinitionId} + */ default VDmnDefinition getDmnDefinition() { return getDmnDecision().getDmnDefinition(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDefinition.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDefinition.java index a24691a01f8239abfbd96bc96cc71f4033200b6e..e88ac22408909e27a3840c971078b62ccddbfc34 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDefinition.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnDefinition.java @@ -4,14 +4,40 @@ import de.unikoblenz.fgbks.core.dmn.domain.ids.AbstractId; import de.unikoblenz.fgbks.core.dmn.domain.ids.DefinitionId; import java.util.List; +/** + * The definition is the root element for a dmn table and contains all {@link VDmnDecision}s and all + * {@link VDmnInputData}. Furthermore, all elements of the dmn table can be accessed with {@link + * VDmnDefinition#getElementById}. + */ public interface VDmnDefinition extends VDmnElement { + /** + * Get the list of {@link VDmnDecision}s. + * + * @return the list of {@link VDmnDecision}s + */ List<VDmnDecision> getDmnDecisions(); + /** + * Get the list of {@link VDmnInputData}s. + * + * @return the list of {@link VDmnInputData}s + */ List<VDmnInputData> getDmnInputData(); + /** + * Get the vdmn element with the given id. + * + * @param id the {@link AbstractId} of the element + * @return the {@link VDmnElement}, or null, if the element was not found + */ VDmnElement getElementById(AbstractId id); + /** + * Get the {@link DefinitionId}. + * + * @return the {@link DefinitionId} + */ default DefinitionId getDefinitionId() { return (DefinitionId) getId(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnElement.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnElement.java index 2af31868ccea4634c574bbdce60cb99716e8bc45..cc013b71a9b0e88bf63ecd7ab6cc37c76264247a 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnElement.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnElement.java @@ -2,6 +2,16 @@ package de.unikoblenz.fgbks.core.dmn.domain.vdmn; import de.unikoblenz.fgbks.core.dmn.domain.ids.AbstractId; +/** + * A abstract interface for all vdmn elements. All elements contains an id, so this interface only + * provides a function for this id. + */ public interface VDmnElement { + + /** + * Get the {@link AbstractId}. + * + * @return the {@link AbstractId} + */ AbstractId getId(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputColumn.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputColumn.java index be658b472d57f3132bf70f39df5f2e944029c245..931665bffd1f3f78b5e0475801994f5dbe309736 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputColumn.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputColumn.java @@ -4,20 +4,39 @@ import de.unikoblenz.fgbks.core.dmn.domain.ids.InputExpressionId; import de.unikoblenz.fgbks.core.dmn.domain.ids.InputId; import java.util.List; +/** + * This interface represents a input column in a {@link VDmnDecisionTable}. A column contains a list + * of {@link VDmnInputValue}s. + */ public interface VDmnInputColumn extends VDmnColumn { // For future work: // List<VDmnInputColumn> getConnectedOutputColumns(); // List<VDmnNode> getConnectedNodes(); + /** + * Get the {@link InputExpressionId}. + * + * @return the {@link InputExpressionId} + */ default InputExpressionId getInputExpressionId() { return (InputExpressionId) getId(); } + /** + * Get the {@link InputId}. + * + * @return the {@link InputId} + */ default InputId getInputId() { return (InputId) getColumnId(); } + /** + * Get a list of {@link VDmnInputValue}s. + * + * @return the list of {@link VDmnInputValue}s + */ default List<VDmnInputValue> getInputValues() { return (List<VDmnInputValue>) (List<?>) getValues(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputData.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputData.java index 9644b676e8341d033ed1a3d4f0a226fef0f4a184..748f6d7b8c4889ac143458f4a502dc7ebba41c98 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputData.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputData.java @@ -2,9 +2,17 @@ package de.unikoblenz.fgbks.core.dmn.domain.vdmn; import de.unikoblenz.fgbks.core.dmn.domain.ids.InputDataId; +/** + * A input data node is a information providing information object for {@link VDmnDecision}s. + */ public interface VDmnInputData extends VDmnNode { - default InputDataId getDecisionId() { + /** + * Get the {@link InputDataId}. + * + * @return the {@link InputDataId} + */ + default InputDataId getInputDataId() { return (InputDataId) getId(); } } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputValue.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputValue.java index 0383443448ee4821148221eb0a6e4e892fb787ad..6b5e8ff7746cad02b66421812c66c77a5df0ffac 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputValue.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnInputValue.java @@ -3,14 +3,33 @@ package de.unikoblenz.fgbks.core.dmn.domain.vdmn; import de.unikoblenz.fgbks.base.utils.boundary.Boundary; import de.unikoblenz.fgbks.core.dmn.domain.ids.InputEntryId; +/** + * This interface represents a single input value (or cell) in a {@link VDmnDecisionTable}. This is + * a {@link VDmnValue}. + */ public interface VDmnInputValue extends VDmnValue { + /** + * Get the {@link Boundary} instance of the value. + * + * @return the {@link Boundary} instance of the value + */ Boundary getBoundary(); + /** + * Get the {@link InputEntryId}. + * + * @return the {@link InputEntryId} + */ default InputEntryId getInputEntryId() { return (InputEntryId) getId(); } + /** + * Get the {@link VDmnInputColumn}. + * + * @return the {@link VDmnInputColumn} + */ default VDmnInputColumn getDmnInputColumn() { return (VDmnInputColumn) getDmnColumn(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnNode.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnNode.java index 1df073a1e9a483762b969c85dbdecfa109238f8f..e1be6f7a452f6e046d7cf1b2ee18f5a40d3ec4f6 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnNode.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnNode.java @@ -4,11 +4,31 @@ import de.unikoblenz.fgbks.base.domain.Name; import java.util.List; import java.util.Optional; +/** + * This interface represents a node on DRD level. A node can either be a {@link VDmnDecision} or a + * {@link VDmnInputData} node. + */ public interface VDmnNode extends VDmnElement { + /** + * Get the {@link VDmnDefinition}. + * + * @return the {@link VDmnDefinition} + */ VDmnDefinition getDmnDefinition(); + /** + * Get a list of {@link VDmnDecision}s, which has this current node as information requirement. + * See also {@link VDmnDecision#getDmnInformationRequirements()}. + * + * @return a list of {@link VDmnDecision}s + */ List<VDmnDecision> getInformationProvidingDecisions(); + /** + * Get the name of the node, if present. + * + * @return an optional {@link Name} + */ Optional<Name> getName(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnOutputColumn.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnOutputColumn.java index 3204023c6d8f2f96f12d4a03502247a9ea259b28..c0630bef74b549c3728aecb34da3cc96e0565ffa 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnOutputColumn.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnOutputColumn.java @@ -3,16 +3,30 @@ package de.unikoblenz.fgbks.core.dmn.domain.vdmn; import de.unikoblenz.fgbks.core.dmn.domain.ids.OutputId; import java.util.List; +/** + * This interface represents a output column in a {@link VDmnDecisionTable}. A column contains a + * list of {@link VDmnOutputValue}s. + */ public interface VDmnOutputColumn extends VDmnColumn { - // For future work: + // TODO: For future work: // List<VDmnInputColumn> getConnectedInputColumns(); // List<VDmnNode> getConnectedNodes(); + /** + * Get the {@link OutputId} of the column. + * + * @return the {@link OutputId}. + */ default OutputId getOutputId() { return (OutputId) getColumnId(); } + /** + * Get the list of {@link VDmnOutputValue} of the column. + * + * @return the list of {@link VDmnOutputValue}. + */ default List<VDmnOutputValue> getDmnOutputValues() { return (List<VDmnOutputValue>) (List<?>) getValues(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnOutputValue.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnOutputValue.java index 06707f9e38bbbdc807bbbfc077d436b78892aaef..6a856f4fe537843194a86743c26bcee3170319f1 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnOutputValue.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnOutputValue.java @@ -2,12 +2,26 @@ package de.unikoblenz.fgbks.core.dmn.domain.vdmn; import de.unikoblenz.fgbks.core.dmn.domain.ids.OutputEntryId; +/** + * This interface represents a single output value (or cell) in a {@link VDmnDecisionTable}. This is + * a {@link VDmnValue}. + */ public interface VDmnOutputValue extends VDmnValue { + /** + * Get the {@link OutputEntryId}. + * + * @return the {@link OutputEntryId}. + */ default OutputEntryId getOutputEntryId() { return (OutputEntryId) getId(); } + /** + * Get the {@link VDmnOutputColumn}. + * + * @return the {@link VDmnOutputColumn}. + */ default VDmnOutputColumn getDmnOutputColumn() { return (VDmnOutputColumn) getDmnColumn(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnRule.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnRule.java index 5b896bd1c2f7f6277acc087ea0d6c1444358ae9b..7bde779a2b8972f99a72a42c6a33f41a6398653f 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnRule.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnRule.java @@ -4,24 +4,63 @@ import de.unikoblenz.fgbks.core.dmn.domain.common.RowNumber; import de.unikoblenz.fgbks.core.dmn.domain.ids.RuleId; import java.util.List; +/** + * This interface represents a single rule (or row) in a {@link VDmnDecisionTable}. A rule contains + * a list of {@link VDmnInputValue}s and a list of {@link VDmnOutputValue}s. + */ public interface VDmnRule extends VDmnElement { + /** + * Get the {@link RowNumber} of the rule inside the dmn table. + * + * @return the {@link RowNumber}. + */ RowNumber getRowNumber(); + /** + * Get the {@link VDmnDecisionTable}. + * + * @return the {@link VDmnDecisionTable}. + */ VDmnDecisionTable getDmnDecisionTable(); + /** + * Get a list of {@link VDmnInputValue}s. + * + * @return the list of {@link VDmnInputValue} + */ List<VDmnInputValue> getDmnInputValues(); + /** + * Get a list of {@link VDmnOutputValue}s. + * + * @return the list of {@link VDmnOutputValue} + */ List<VDmnOutputValue> getDmnOutputValues(); + /** + * Get the {@link RuleId} of the {@link VDmnRule}. + * + * @return the {@link RuleId}. + */ default RuleId getRuleId() { return (RuleId) getId(); } + /** + * Get the {@link VDmnDecision}. + * + * @return the {@link VDmnDecision}. + */ default VDmnDecision getDmnDecision() { return getDmnDecisionTable().getDmnDecision(); } + /** + * Get the {@link VDmnDefinition}. + * + * @return the {@link VDmnDefinition}. + */ default VDmnDefinition getDmnDefinition() { return getDmnDecision().getDmnDefinition(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnValue.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnValue.java index 2f65a09aa304b6f170006f4c4a36f0b26b69f0f8..cf33286d8bb9bf364a1a051950679e3b1fb52cc3 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnValue.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VDmnValue.java @@ -11,60 +11,145 @@ import de.unikoblenz.fgbks.core.dmn.domain.ids.RuleId; import java.util.List; import java.util.Optional; +/** + * This interface represents a single value (or cell) in a {@link VDmnDecisionTable}. It can either + * be a {@link VDmnInputValue} (in a {@link VDmnInputColumn}) or a {@link VDmnOutputValue} (in a + * {@link VDmnOutputColumn}). Furthermore each value exists in one {@link VDmnRule}. + */ public interface VDmnValue extends VDmnElement { + /** + * Get the {@link VDmnRule} of the value. + * + * @return the {@link VDmnRule} + */ VDmnRule getDmnRule(); + /** + * Get the original text of the value. + * + * @return the {@link Text} + */ Text getText(); + /** + * Get the description, if present. + * + * @return the {@link Description} as optional + */ Optional<Description> getDescription(); + /** + * Get the column of the value. Can be a {@link VDmnInputColumn} or a {@link VDmnOutputColumn}. + * + * @return the {@link VDmnColumn} + */ VDmnColumn getDmnColumn(); + /** + * Get the possible string values, which are defined in {@link VDmnColumn#getPredefinedValues()}. + * + * @return an optional list of string values. + */ default Optional<List<StringValue>> getPossiblePredefinedValues() { return getDmnColumn().getPredefinedValues(); } + /** + * Get the {@link DefinitionId} of the {@link VDmnDefinition}. + * + * @return the {@link DefinitionId}. + */ default DefinitionId getDefinitionId() { return getDmnDefinition().getDefinitionId(); } + /** + * Get the {@link DecisionId} of the {@link VDmnDecision}. + * + * @return the {@link DecisionId}. + */ default DecisionId getDecisionId() { return getDmnDecision().getDecisionId(); } + /** + * Get the {@link DecisionTableId} of the {@link VDmnDecisionTable}. + * + * @return the {@link DecisionTableId}. + */ default DecisionTableId getDecisionTableId() { return getDmnDecisionTable().getDecisionTableId(); } + /** + * Get the {@link VTypeRef} of the {@link VDmnColumn}. + * + * @return the {@link VTypeRef}. + */ default VTypeRef getTypeRef() { return getDmnColumn().getTypeRef(); } + /** + * Get the {@link RuleId} of the {@link VDmnRule}. + * + * @return the {@link RuleId}. + */ default RuleId getRuleId() { return getDmnRule().getRuleId(); } + /** + * Get the {@link RowNumber} of the {@link VDmnRule}. + * + * @return the {@link RowNumber}. + */ default RowNumber getRowNumber() { return getDmnRule().getRowNumber(); } + /** + * Get a boolean, which determines, if the value is a input value. + * + * @return true, if the value is a input value + */ default boolean isInputValue() { return getDmnColumn() instanceof VDmnInputColumn; } + /** + * Get a boolean, which determines, if the value is a output value. + * + * @return true, if the value is a output value + */ default boolean isOutputValue() { return getDmnColumn() instanceof VDmnOutputColumn; } + /** + * Get the {@link VDmnDecisionTable}. + * + * @return the {@link VDmnDecisionTable}. + */ default VDmnDecisionTable getDmnDecisionTable() { return getDmnColumn().getDmnDecisionTable(); } + /** + * Get the {@link VDmnDecision}. + * + * @return the {@link VDmnDecision}. + */ default VDmnDecision getDmnDecision() { return getDmnDecisionTable().getDmnDecision(); } + /** + * Get the {@link VDmnDefinition}. + * + * @return the {@link VDmnDefinition}. + */ default VDmnDefinition getDmnDefinition() { return getDmnDecision().getDmnDefinition(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VTypeRef.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VTypeRef.java index 9852ee9401385fc74ee9dafb1773c9322128e45b..fa9457f0eae3d9b68b81126e5649eab6a5aa3d5a 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VTypeRef.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VTypeRef.java @@ -46,7 +46,7 @@ public enum VTypeRef { private Class<? extends Boundary> boundaryClass; /** - * Get the {@link VTypeRef} with the given name or {@link null}, if no VTypeRef was found with the + * Get the {@link VTypeRef} with the given name or null, if no VTypeRef was found with the * given name. * * @param name the name as String @@ -62,7 +62,7 @@ public enum VTypeRef { } /** - * Get the {@link VTypeRef} with the given java {@link Class} or {@link null}, if no VTypeRef was + * Get the {@link VTypeRef} with the given java {@link Class} or null, if no VTypeRef was * found with the given java {@link Class}. * * @param javaClass java {@link Class} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnColumnImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnColumnImpl.java index 2691821ca73b03395b87f881254d0a9c388e348f..904168d8b05f8e5c1aaf241e643b75ac04e4e53f 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnColumnImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnColumnImpl.java @@ -12,6 +12,9 @@ import java.util.Collections; import java.util.List; import java.util.Optional; +/** + * Implementation of {@link VDmnColumn} + */ public abstract class AbstractVDmnColumnImpl extends AbstractVDmnElement implements VDmnColumn { protected VDmnDecisionTable dmnDecisionTable; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnElement.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnElement.java index 76c8060f530f6953633ce617f683853948dc740e..25cdced13235b4cc8f11faeb82d6997de3eddd68 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnElement.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnElement.java @@ -3,6 +3,9 @@ package de.unikoblenz.fgbks.core.dmn.domain.vdmn.impl; import de.unikoblenz.fgbks.core.dmn.domain.ids.AbstractId; import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnElement; +/** + * Implementation of {@link VDmnElement} + */ public abstract class AbstractVDmnElement implements VDmnElement { protected AbstractId id; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnNode.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnNode.java index f026fadb1cebd0fb366c1dbbd335c531e859e952..acfe2d325455d33612787e905cfe0b9e066d4241 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnNode.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnNode.java @@ -9,6 +9,9 @@ import java.util.Collections; import java.util.List; import java.util.Optional; +/** + * Implementation of {@link VDmnNode} + */ public abstract class AbstractVDmnNode extends AbstractVDmnElement implements VDmnNode { protected VDmnDefinition dmnDefinition; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnValue.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnValue.java index 15c3db36d00f0af4153983b55833e2554aadca92..f1b29b46c230b3afabda1bf199682974f7512c53 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnValue.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/AbstractVDmnValue.java @@ -7,6 +7,9 @@ import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnRule; import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnValue; import java.util.Optional; +/** + * Implementation of {@link VDmnValue} + */ public abstract class AbstractVDmnValue extends AbstractVDmnElement implements VDmnValue { protected VDmnRule dmnRule; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDecisionImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDecisionImpl.java index 2563bf01645074652c45544cb0483c759c233975..21f0a5ff9d252860f6ad266009be62ab4efdd969 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDecisionImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDecisionImpl.java @@ -11,6 +11,9 @@ import java.util.Collections; import java.util.List; import org.apache.commons.lang3.Validate; +/** + * Implementation of {@link VDmnDecision} + */ public class VDmnDecisionImpl extends AbstractVDmnNode implements VDmnDecision { private VDmnDecisionTable dmnDecisionTable; @@ -31,6 +34,11 @@ public class VDmnDecisionImpl extends AbstractVDmnNode implements VDmnDecision { return dmnDecisionTable; } + /** + * Get a new instance of a builder. + * + * @return a new builder instance + */ public static Builder getBuilder() { return new VDmnDecisionImpl().new Builder(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDecisionTableImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDecisionTableImpl.java index a745aa11cd7d1df52f3ae1d4738059c4e5db3dc7..f472dfa142f5a3d9f8874cda20a3c51c1d066710 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDecisionTableImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDecisionTableImpl.java @@ -12,6 +12,9 @@ import java.util.List; import org.apache.commons.lang3.Validate; import org.camunda.bpm.model.dmn.HitPolicy; +/** + * Implementation of {@link VDmnDecisionTable} + */ public class VDmnDecisionTableImpl extends AbstractVDmnElement implements VDmnDecisionTable { private VDmnDecision dmnDecision; @@ -21,6 +24,7 @@ public class VDmnDecisionTableImpl extends AbstractVDmnElement implements VDmnDe private List<VDmnRule> dmnRules; private VDmnDecisionTableImpl() { + super(); dmnOutputColumns = new ArrayList<>(); dmnInputColumns = new ArrayList<>(); dmnRules = new ArrayList<>(); @@ -51,6 +55,11 @@ public class VDmnDecisionTableImpl extends AbstractVDmnElement implements VDmnDe return Collections.unmodifiableList(dmnRules); } + /** + * Get a new instance of a builder. + * + * @return a new builder instance + */ public static Builder getBuilder() { return new VDmnDecisionTableImpl().new Builder(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDefinitionImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDefinitionImpl.java index 498a157aab46c362862df433f0a93c7c00a2a13d..6657a61663c5b631d0ca6d8f89bf0fe327b0be06 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDefinitionImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnDefinitionImpl.java @@ -14,6 +14,9 @@ import java.util.List; import java.util.Map; import org.apache.commons.lang3.Validate; +/** + * Implementation of {@link VDmnDefinition}. + */ public class VDmnDefinitionImpl extends AbstractVDmnElement implements VDmnDefinition { private List<VDmnDecision> dmnDecisions; @@ -21,6 +24,7 @@ public class VDmnDefinitionImpl extends AbstractVDmnElement implements VDmnDefin private Map<AbstractId, VDmnElement> elements; private VDmnDefinitionImpl() { + super(); dmnDecisions = new ArrayList<>(); dmnInputData = new ArrayList<>(); elements = new HashMap<>(); @@ -41,6 +45,11 @@ public class VDmnDefinitionImpl extends AbstractVDmnElement implements VDmnDefin return elements.get(Validate.notNull(id)); } + /** + * Get a new instance of a builder. + * + * @return a new builder instance + */ public static Builder getBuilder() { return new VDmnDefinitionImpl().new Builder(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputColumnImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputColumnImpl.java index ea1b3a0c29d0648e83a2de0b3eda60c74255dcdb..30f6aeff901835b5d1f6652539336b458b4574c5 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputColumnImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputColumnImpl.java @@ -11,6 +11,9 @@ import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnInputValue; import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VTypeRef; import org.apache.commons.lang3.Validate; +/** + * Implementation of {@link VDmnInputColumn}. + */ public class VDmnInputColumnImpl extends AbstractVDmnColumnImpl implements VDmnInputColumn { private InputExpressionId inputExpressionId; @@ -19,6 +22,11 @@ public class VDmnInputColumnImpl extends AbstractVDmnColumnImpl implements VDmnI super(); } + /** + * Get a new instance of a builder. + * + * @return a new builder instance + */ public static Builder getBuilder() { return new VDmnInputColumnImpl().new Builder(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputDataImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputDataImpl.java index fa02c88ad34d3994b685fef5e732bb426a7dde71..6556a3842003cfcd032af259e254189c4704485b 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputDataImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputDataImpl.java @@ -7,12 +7,20 @@ import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnDefinition; import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnInputData; import org.apache.commons.lang3.Validate; +/** + * Implementation of {@link VDmnInputData}. + */ public class VDmnInputDataImpl extends AbstractVDmnNode implements VDmnInputData { private VDmnInputDataImpl() { super(); } + /** + * Get a new instance of a builder. + * + * @return a new builder instance + */ public static Builder getBuilder() { return new VDmnInputDataImpl().new Builder(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputValueChangeableImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputValueChangeableImpl.java index 6108f4b405b49cb97ed9ec82774be11735d12645..b04f5844969dffc939ac562c64b5e23318403e41 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputValueChangeableImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputValueChangeableImpl.java @@ -1,8 +1,12 @@ package de.unikoblenz.fgbks.core.dmn.domain.vdmn.impl; import de.unikoblenz.fgbks.base.utils.boundary.Boundary; +import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnInputValue; import org.apache.commons.lang3.Validate; +/** + * Implementation of {@link VDmnInputValue}. Create a input value with changeable boundaries. + */ public class VDmnInputValueChangeableImpl extends VDmnInputValueImpl { public VDmnInputValueChangeableImpl(VDmnInputValueImpl inputValue) { diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputValueImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputValueImpl.java index bbc0cc305e9b07b8ef01e57fad46af7acbe91afe..1183d9af3e9954051b139ebc484c61c8b82d149e 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputValueImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnInputValueImpl.java @@ -9,14 +9,15 @@ import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnInputValue; import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnRule; import org.apache.commons.lang3.Validate; +/** + * Implementation of {@link VDmnInputValue}. + */ public class VDmnInputValueImpl extends AbstractVDmnValue implements VDmnInputValue { protected Boundary boundary; - protected VDmnInputValueImpl() {} - - public static Builder getBuilder() { - return new VDmnInputValueImpl().new Builder(); + protected VDmnInputValueImpl() { + super(); } @Override @@ -24,6 +25,15 @@ public class VDmnInputValueImpl extends AbstractVDmnValue implements VDmnInputVa return boundary; } + /** + * Get a new instance of a builder. + * + * @return a new builder instance + */ + public static Builder getBuilder() { + return new VDmnInputValueImpl().new Builder(); + } + public class Builder extends AbstractDmnElementBuilder<VDmnInputValueImpl> { public Builder withDmnRule(VDmnRule dmnRule) { diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnOutputColumnImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnOutputColumnImpl.java index 79a22777a367e5fe8ad59bb10c52d315560b0300..80c00224bba4e0d720329b1689cadc1921de2f23 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnOutputColumnImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnOutputColumnImpl.java @@ -10,12 +10,20 @@ import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnOutputValue; import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VTypeRef; import org.apache.commons.lang3.Validate; +/** + * Implementation of {@link VDmnOutputColumn}. + */ public class VDmnOutputColumnImpl extends AbstractVDmnColumnImpl implements VDmnOutputColumn { private VDmnOutputColumnImpl() { super(); } + /** + * Get a new instance of a builder. + * + * @return a new builder instance + */ public static Builder getBuilder() { return new VDmnOutputColumnImpl().new Builder(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnOutputValueImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnOutputValueImpl.java index 1eaba8a75de72c85c1d4fef19d0d8e5c402b03be..27465226c3fca1d6c5a40ebde80f0051dbd8a0ea 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnOutputValueImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnOutputValueImpl.java @@ -8,10 +8,20 @@ import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnOutputValue; import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnRule; import org.apache.commons.lang3.Validate; +/** + * Implementation of {@link VDmnOutputValue}. + */ public class VDmnOutputValueImpl extends AbstractVDmnValue implements VDmnOutputValue { - private VDmnOutputValueImpl() {} + private VDmnOutputValueImpl() { + super(); + } + /** + * Get a new instance of a builder. + * + * @return a new builder instance + */ public static Builder getBuilder() { return new VDmnOutputValueImpl().new Builder(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnRuleChangeableImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnRuleChangeableImpl.java index 3179702c3bac283e763d1eff12bed1c737d47ad6..3b00d467b304e83020938fe5f300929b891d293c 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnRuleChangeableImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnRuleChangeableImpl.java @@ -2,8 +2,12 @@ package de.unikoblenz.fgbks.core.dmn.domain.vdmn.impl; import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnInputValue; import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnOutputValue; +import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnRule; import org.apache.commons.lang3.Validate; +/** + * Implementation of {@link VDmnRule}. Create a rule, which has changeable values + */ public class VDmnRuleChangeableImpl extends VDmnRuleImpl { public VDmnRuleChangeableImpl(VDmnRuleImpl rule) { diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnRuleImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnRuleImpl.java index 24a57780543ff32587a3bc473011b3858ad408e2..5ffc67ed3225ef125cb538c264793c62732eb0ad 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnRuleImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/impl/VDmnRuleImpl.java @@ -11,6 +11,9 @@ import java.util.Collections; import java.util.List; import org.apache.commons.lang3.Validate; +/** + * Implementation of {@link VDmnRule}. + */ public class VDmnRuleImpl extends AbstractVDmnElement implements VDmnRule { protected RowNumber rowNumber; @@ -43,6 +46,11 @@ public class VDmnRuleImpl extends AbstractVDmnElement implements VDmnRule { return Collections.unmodifiableList(outputValues); } + /** + * Get a new instance of a builder. + * + * @return a new builder instance + */ public static Builder getBuilder() { return new VDmnRuleImpl().new Builder(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/parser/SimpleVDmnParser.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/parser/SimpleVDmnParser.java index e953cc668cd207b1e04b22d049c31538323a8fcd..7ad51898ef719b0aec9e1b9839297ddff5e0a77a 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/parser/SimpleVDmnParser.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/parser/SimpleVDmnParser.java @@ -41,12 +41,13 @@ import org.camunda.bpm.model.dmn.instance.Output; import org.camunda.bpm.model.dmn.instance.OutputEntry; import org.camunda.bpm.model.dmn.instance.Rule; +/** + * Simple Vdmn parser parse the {@link DmnModelInstance} to a {@link VDmnDefinition} + */ @ApplicationScoped public class SimpleVDmnParser implements DmnModelInstanceWrapper { - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ @Override public VDmnDefinition getVDmnDefinition(DmnModelInstance dmnModel) { // Get the definition