コード例 #1
0
  // change to put
  @PUT
  @Produces(JSON_UTF8)
  @Path("cancelFundAllocation")
  public String cancelFundAllocation(
      @QueryParam("processID") String processID,
      @QueryParam("userID") String userID,
      @QueryParam("access_token") String access_token) {
    checkToken(access_token);
    login(User.findByUsername(userID));
    try {
      WorkflowSystem ws = WorkflowSystem.getInstance();
      Set<WorkflowProcess> processes = ws.getProcessesSet();
      for (WorkflowProcess workflowProcess : processes) {
        if (workflowProcess.getProcessNumber() != null) {
          if (workflowProcess.getProcessNumber().equals(processID)) {
            WorkflowActivity<WorkflowProcess, ActivityInformation<WorkflowProcess>>
                cancelAcquisitionRequest =
                    workflowProcess.getActivity(
                        DeleteAfterTheFactAcquisitionProcess.class.getSimpleName());

            if (cancelAcquisitionRequest == null) { // is not after the fact
              cancelAcquisitionRequest =
                  workflowProcess.getActivity(CancelAcquisitionRequest.class.getSimpleName());
            }
            try {
              cancelAcquisitionRequest.execute(
                  new ActivityInformation<WorkflowProcess>(
                      workflowProcess, cancelAcquisitionRequest));
            } catch (Exception e) {
              throw newApplicationError(Status.NOT_ACCEPTABLE, "cancelation_not_acceptable");
            }
            JsonObject obj = new JsonObject();
            obj.addProperty("status", Status.OK.toString());
            return gson.toJson(obj);
          }
        }
      }
      // No process was found
      throw newApplicationError(Status.NOT_FOUND, "resource_not_found");
    } finally {
      logout();
    }
  }