示例#1
1
  public static List<ScheduledWorkFlowJob> searchWorkflowJobs(
      String pageSize, String pageNumber, String workflowJobId, String workflowName, String status)
      throws IOException {

    String workflowsPath =
        LoaderServerConfiguration.instance().getJobFSConfig().getWorkflowJobsPath();
    File[] workflowDirs = new File(workflowsPath).listFiles();
    Arrays.sort(
        workflowDirs,
        new Comparator<File>() {
          public int compare(File f1, File f2) {
            return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
          }
        });
    ArrayList<ScheduledWorkFlowJob> result = new ArrayList<ScheduledWorkFlowJob>();
    for (File workflowDir : workflowDirs) {
      File f = new File(workflowDir.getAbsolutePath() + File.separator + "status.json");
      ScheduledWorkFlowJob scheduledWorkFlowJob =
          objectMapper.readValue(f, ScheduledWorkFlowJob.class);
      result.add(scheduledWorkFlowJob);
    }
    ArrayList<ScheduledWorkFlowJob> filter = new ArrayList<ScheduledWorkFlowJob>();
    if (!workflowJobId.equals("")) {
      for (ScheduledWorkFlowJob r : result) {
        if (r.getWorkFlowId().contains(workflowJobId)) filter.add(r);
      }
    }
    result.removeAll(filter);
    filter.clear();
    if (!workflowName.equals("")) {
      for (ScheduledWorkFlowJob r : result) {
        if (r.getWorkflowName().contains(workflowName)) filter.add(r);
      }
    }
    result.removeAll(filter);
    filter.clear();
    if (!status.equals("")) {
      for (ScheduledWorkFlowJob r : result) {
        if (r.getStatus().equals(status)) filter.add(r);
      }
    }
    result.removeAll(filter);
    filter.clear();
    int size = Integer.parseInt(pageSize);
    int numberOfPages = result.size() / size + 1;
    int startIndex = (Integer.parseInt(pageNumber) - 1) * size;
    int lastIndex = startIndex + size > result.size() ? result.size() : startIndex + size;
    return result.subList(startIndex, lastIndex);
  }