@Override
  public void addConditional(
      String condition, ExecutionFlow onTrueFlow, ExecutionFlow onFalseFlow) {
    String conditionStartActivityId = popCurrentId();
    String endingActivityId = "condition-end-" + popCurrentId();

    List<ExecutionFlow> flows = Arrays.asList(onTrueFlow, onFalseFlow);
    String[] flowIds =
        splitExecution(
            conditionStartActivityId,
            behaviorFactory.decisionBehaviorInstance(condition),
            flows.size(),
            Arrays.asList("onTrue", "onFalse"));
    addFlows(flowIds, flows, endingActivityId);

    nextActivityId = endingActivityId;
  }