static Decision decision()

in src/main/java/com/uber/cadence/internal/compatibility/proto/DecisionMapper.java [68:273]


  static Decision decision(com.uber.cadence.Decision d) {
    if (d == null) {
      return null;
    }
    Builder decision = Decision.newBuilder();
    switch (d.getDecisionType()) {
      case ScheduleActivityTask:
        {
          com.uber.cadence.ScheduleActivityTaskDecisionAttributes attr =
              d.getScheduleActivityTaskDecisionAttributes();
          ScheduleActivityTaskDecisionAttributes.Builder builder =
              ScheduleActivityTaskDecisionAttributes.newBuilder()
                  .setActivityId(attr.getActivityId())
                  .setActivityType(activityType(attr.getActivityType()))
                  .setTaskList(taskList(attr.getTaskList()))
                  .setInput(payload(attr.getInput()))
                  .setScheduleToCloseTimeout(
                      secondsToDuration(attr.getScheduleToCloseTimeoutSeconds()))
                  .setScheduleToStartTimeout(
                      secondsToDuration(attr.getScheduleToStartTimeoutSeconds()))
                  .setStartToCloseTimeout(secondsToDuration(attr.getStartToCloseTimeoutSeconds()))
                  .setHeartbeatTimeout(secondsToDuration(attr.getHeartbeatTimeoutSeconds()))
                  .setHeader(header(attr.getHeader()))
                  .setRequestLocalDispatch(attr.isRequestLocalDispatch());
          if (attr.getRetryPolicy() != null) {
            builder.setRetryPolicy(retryPolicy(attr.getRetryPolicy()));
          }
          if (attr.getDomain() != null) {
            builder.setDomain(attr.getDomain());
          }
          decision.setScheduleActivityTaskDecisionAttributes(builder);
        }
        break;
      case RequestCancelActivityTask:
        {
          com.uber.cadence.RequestCancelActivityTaskDecisionAttributes attr =
              d.getRequestCancelActivityTaskDecisionAttributes();
          decision.setRequestCancelActivityTaskDecisionAttributes(
              RequestCancelActivityTaskDecisionAttributes.newBuilder()
                  .setActivityId(attr.getActivityId()));
        }
        break;
      case StartTimer:
        {
          com.uber.cadence.StartTimerDecisionAttributes attr = d.getStartTimerDecisionAttributes();
          decision.setStartTimerDecisionAttributes(
              StartTimerDecisionAttributes.newBuilder()
                  .setTimerId(attr.getTimerId())
                  .setStartToFireTimeout(
                      secondsToDuration(longToInt(attr.getStartToFireTimeoutSeconds()))));
        }
        break;
      case CompleteWorkflowExecution:
        {
          com.uber.cadence.CompleteWorkflowExecutionDecisionAttributes attr =
              d.getCompleteWorkflowExecutionDecisionAttributes();
          decision.setCompleteWorkflowExecutionDecisionAttributes(
              CompleteWorkflowExecutionDecisionAttributes.newBuilder()
                  .setResult(payload(attr.getResult())));
        }
        break;
      case FailWorkflowExecution:
        {
          com.uber.cadence.FailWorkflowExecutionDecisionAttributes attr =
              d.getFailWorkflowExecutionDecisionAttributes();
          decision.setFailWorkflowExecutionDecisionAttributes(
              FailWorkflowExecutionDecisionAttributes.newBuilder()
                  .setFailure(failure(attr.getReason(), attr.getDetails())));
        }
        break;
      case CancelTimer:
        {
          com.uber.cadence.CancelTimerDecisionAttributes attr =
              d.getCancelTimerDecisionAttributes();
          decision.setCancelTimerDecisionAttributes(
              CancelTimerDecisionAttributes.newBuilder().setTimerId(attr.getTimerId()));
        }
        break;
      case CancelWorkflowExecution:
        {
          com.uber.cadence.CancelWorkflowExecutionDecisionAttributes attr =
              d.getCancelWorkflowExecutionDecisionAttributes();
          decision.setCancelWorkflowExecutionDecisionAttributes(
              CancelWorkflowExecutionDecisionAttributes.newBuilder()
                  .setDetails(payload(attr.getDetails())));
        }
        break;
      case RequestCancelExternalWorkflowExecution:
        {
          com.uber.cadence.RequestCancelExternalWorkflowExecutionDecisionAttributes attr =
              d.getRequestCancelExternalWorkflowExecutionDecisionAttributes();
          RequestCancelExternalWorkflowExecutionDecisionAttributes.Builder builder =
              RequestCancelExternalWorkflowExecutionDecisionAttributes.newBuilder()
                  .setDomain(attr.getDomain())
                  .setWorkflowExecution(workflowRunPair(attr.getWorkflowId(), attr.getRunId()))
                  .setChildWorkflowOnly(attr.isChildWorkflowOnly());
          if (attr.getControl() != null) {
            builder.setControl(arrayToByteString(attr.getControl()));
          }
          decision.setRequestCancelExternalWorkflowExecutionDecisionAttributes(builder);
        }
        break;
      case ContinueAsNewWorkflowExecution:
        {
          com.uber.cadence.ContinueAsNewWorkflowExecutionDecisionAttributes attr =
              d.getContinueAsNewWorkflowExecutionDecisionAttributes();
          ContinueAsNewWorkflowExecutionDecisionAttributes.Builder builder =
              ContinueAsNewWorkflowExecutionDecisionAttributes.newBuilder()
                  .setWorkflowType(workflowType(attr.getWorkflowType()))
                  .setTaskList(taskList(attr.getTaskList()))
                  .setInput(payload(attr.getInput()))
                  .setExecutionStartToCloseTimeout(
                      secondsToDuration(attr.getExecutionStartToCloseTimeoutSeconds()))
                  .setTaskStartToCloseTimeout(
                      secondsToDuration(attr.getTaskStartToCloseTimeoutSeconds()))
                  .setBackoffStartInterval(
                      secondsToDuration(attr.getBackoffStartIntervalInSeconds()))
                  .setInitiator(continueAsNewInitiator(attr.getInitiator()))
                  .setFailure(failure(attr.getFailureReason(), attr.getFailureDetails()))
                  .setLastCompletionResult(payload(attr.getLastCompletionResult()))
                  .setHeader(header(attr.getHeader()))
                  .setMemo(memo(attr.getMemo()))
                  .setSearchAttributes(searchAttributes(attr.getSearchAttributes()));
          if (attr.getRetryPolicy() != null) {
            builder.setRetryPolicy(retryPolicy(attr.getRetryPolicy()));
          }
          if (attr.getCronSchedule() != null) {
            builder.setCronSchedule(attr.getCronSchedule());
          }
          decision.setContinueAsNewWorkflowExecutionDecisionAttributes(builder);
        }
        break;
      case StartChildWorkflowExecution:
        {
          com.uber.cadence.StartChildWorkflowExecutionDecisionAttributes attr =
              d.getStartChildWorkflowExecutionDecisionAttributes();
          StartChildWorkflowExecutionDecisionAttributes.Builder builder =
              StartChildWorkflowExecutionDecisionAttributes.newBuilder()
                  .setDomain(attr.getDomain())
                  .setWorkflowId(attr.getWorkflowId())
                  .setWorkflowType(workflowType(attr.getWorkflowType()))
                  .setTaskList(taskList(attr.getTaskList()))
                  .setInput(payload(attr.getInput()))
                  .setExecutionStartToCloseTimeout(
                      secondsToDuration(attr.getExecutionStartToCloseTimeoutSeconds()))
                  .setTaskStartToCloseTimeout(
                      secondsToDuration(attr.getTaskStartToCloseTimeoutSeconds()))
                  .setParentClosePolicy(parentClosePolicy(attr.getParentClosePolicy()))
                  .setWorkflowIdReusePolicy(workflowIdReusePolicy(attr.getWorkflowIdReusePolicy()))
                  .setHeader(header(attr.getHeader()))
                  .setMemo(memo(attr.getMemo()))
                  .setSearchAttributes(searchAttributes(attr.getSearchAttributes()));
          if (attr.getRetryPolicy() != null) {
            builder.setRetryPolicy(retryPolicy(attr.getRetryPolicy()));
          }
          if (attr.getControl() != null) {
            builder.setControl(arrayToByteString(attr.getControl()));
          }
          if (attr.getCronSchedule() != null) {
            builder.setCronSchedule(attr.getCronSchedule());
          }
          decision.setStartChildWorkflowExecutionDecisionAttributes(builder);
        }
        break;
      case SignalExternalWorkflowExecution:
        {
          com.uber.cadence.SignalExternalWorkflowExecutionDecisionAttributes attr =
              d.getSignalExternalWorkflowExecutionDecisionAttributes();
          SignalExternalWorkflowExecutionDecisionAttributes.Builder builder =
              SignalExternalWorkflowExecutionDecisionAttributes.newBuilder()
                  .setDomain(attr.getDomain())
                  .setWorkflowExecution(workflowExecution(attr.getExecution()))
                  .setSignalName(attr.getSignalName())
                  .setInput(payload(attr.getInput()))
                  .setChildWorkflowOnly(attr.isChildWorkflowOnly());
          if (attr.getControl() != null) {
            builder.setControl(arrayToByteString(attr.getControl()));
          }
          decision.setSignalExternalWorkflowExecutionDecisionAttributes(builder);
        }
        break;
      case UpsertWorkflowSearchAttributes:
        {
          com.uber.cadence.UpsertWorkflowSearchAttributesDecisionAttributes attr =
              d.getUpsertWorkflowSearchAttributesDecisionAttributes();
          decision.setUpsertWorkflowSearchAttributesDecisionAttributes(
              UpsertWorkflowSearchAttributesDecisionAttributes.newBuilder()
                  .setSearchAttributes(searchAttributes(attr.getSearchAttributes())));
        }
        break;
      case RecordMarker:
        {
          com.uber.cadence.RecordMarkerDecisionAttributes attr =
              d.getRecordMarkerDecisionAttributes();
          decision.setRecordMarkerDecisionAttributes(
              RecordMarkerDecisionAttributes.newBuilder()
                  .setMarkerName(attr.getMarkerName())
                  .setDetails(payload(attr.getDetails()))
                  .setHeader(header(attr.getHeader())));
        }
        break;
      default:
        throw new IllegalArgumentException("unknown decision type");
    }
    return decision.build();
  }