/**
   * Returns a list of values for each button to generate.
   *
   * @param taskId the ID of the current task
   * @param modelInstance the BPMN model instance
   * @return the list of button values
   */
  protected List<Map<String, String>> getButtons(String taskId, BpmnModelInstance modelInstance) {
    ExclusiveGateway gateway = getExclusiveGateway(taskId, modelInstance);

    List<Map<String, String>> buttonValues = new ArrayList<Map<String, String>>();
    for (SequenceFlow sequenceFlow : gateway.getOutgoing()) {
      buttonValues.add(getConditionValues(sequenceFlow));
    }

    return buttonValues;
  }
 /**
  * Returns the name of the following exclusive gateway.
  *
  * @param taskId the ID of the current task
  * @param modelInstance the BPMN model instance
  * @return the name attribute value of the following exclusive gateway
  */
 protected String getGatewayName(String taskId, BpmnModelInstance modelInstance) {
   ExclusiveGateway gateway = getExclusiveGateway(taskId, modelInstance);
   return stripLineBreaks(gateway.getName());
 }