package brainslug.flow.path;
import brainslug.flow.definition.FlowDefinition;
import brainslug.flow.expression.EqualsExpression;
import brainslug.flow.expression.Expression;
import brainslug.flow.expression.Value;
import brainslug.flow.node.ChoiceDefinition;
public class ThenDefinition extends FlowPathDefinition<ThenDefinition> {
private final ChoiceDefinition choiceDefinition;
private final Expression expression;
public ThenDefinition(Expression expression, FlowDefinition definition, ChoiceDefinition choiceDefinition) {
super(definition, choiceDefinition);
this.expression = expression;
this.choiceDefinition = choiceDefinition;
}
public ChoiceDefinition or() {
return getChoiceNode();
}
public ThenDefinition otherwise() {
ThenDefinition otherwise = new ThenDefinition(new EqualsExpression<Value<Boolean>, Value<Boolean>>(new Value<Boolean>(true), new Value<Boolean>(true)), definition, choiceDefinition);
getChoiceNode().setOtherwisePath(otherwise);
return otherwise;
}
protected ChoiceDefinition getChoiceNode() {
return choiceDefinition;
}
public Expression getExpression() {
return expression;
}
}