I have a UML 2.5 class diagram with a lot of composition relationships.
I'm tying to implement them in Kotlin (I am new in Kotlin sorry):
class RuleScenarioState (val description : String){
var action: RuleStateAction? = null
var stateType : ScenarioStateType? = null
var completeCriteria : StateCompleteCriteria? = null
private class ComplexCompleteCriteria private constructor(val customCriteriaImplementation : String): StateCompleteCriteria() {
}
private class ExpressionCompleteCriteria private constructor(val expression : RegulationExpression): StateCompleteCriteria() {
}
private class RegulationNodeCompleteCriteria private constructor(val regulationNodeTreeId : UUID): StateCompleteCriteria() {
}
private class CustomCompleteCriteria private constructor(val customCriteriaImplementation : String): StateCompleteCriteria() {
}
private class CustomRuleStateAction private constructor(val customActionImplementationName : String): RuleStateAction() {
}
private class ClassificationRuleActionState private constructor(val classificationExpression : RegulationExpression): RuleStateAction() {
}
}
Unfortunately I have no idea how this classes will be used, I just have a diagram which need to implement. I think that it is bad idea to create instances with intensive state manipulations as shown above, but how to assure one-to-one instances relationship? How to implement properly UML composition relationship in Kotlin?