private int getLongestName(WorkflowReport workflowReport, int level) { int result = 0; result = Math.max(result, getSubject().getName().length() + level); for (ProcessorReport processorReport : workflowReport.getProcessorReports()) { result = Math.max(result, processorReport.getSubject().getName().length()); for (ActivityReport activityReport : processorReport.getActivityReports()) { WorkflowReport nestedWorkflowReport = activityReport.getNestedWorkflowReport(); if (nestedWorkflowReport != null) result = Math.max(result, getLongestName(nestedWorkflowReport, level + 1)); } } return result; }
@Override public String toString() { DateFormat dateFormat = new SimpleDateFormat(dateFormatString); StringBuilder sb = new StringBuilder(); int max = getLongestName(this, 0); spaces(sb, max + 1); sb.append("Status "); sb.append("Queued "); sb.append("Started "); sb.append("Complete "); sb.append("Errors "); sb.append("Started "); sb.append("Finished\n"); sb.append(getSubject().getName()); spaces(sb, max - getSubject().getName().length() + 1); sb.append(getState()); spaces(sb, 10 - getState().name().length()); sb.append("-"); spaces(sb, 9); sb.append("-"); spaces(sb, 9); sb.append("-"); spaces(sb, 9); sb.append("-"); spaces(sb, 9); addDates(sb, getStartedDate(), getCompletedDate(), dateFormat); for (ProcessorReport processorReport : getProcessorReports()) addProcessor(sb, max, 0, processorReport, dateFormat); return sb.toString(); }
private void addProcessor(StringBuilder sb, int max, int level, ProcessorReport processorReport, DateFormat dateFormat) { String processorName = processorReport.getSubject().getName(); spaces(sb, level); sb.append(processorName); spaces(sb, max - processorName.length() - level + 1); State processorState = processorReport.getState(); sb.append(processorState); spaces(sb, 10 - processorState.name().length()); String jobsQueued = String.valueOf(processorReport.getJobsQueued()); sb.append(jobsQueued); spaces(sb, 10 - jobsQueued.length()); String jobsStarted = String.valueOf(processorReport.getJobsStarted()); sb.append(jobsStarted); spaces(sb, 10 - jobsStarted.length()); String jobsCompleted = String.valueOf(processorReport.getJobsCompleted()); sb.append(jobsCompleted); spaces(sb, 10 - jobsCompleted.length()); String jobsCompletedWithErrors = String.valueOf(processorReport .getJobsCompletedWithErrors()); sb.append(jobsCompletedWithErrors); spaces(sb, 10 - jobsCompletedWithErrors.length()); addDates(sb, processorReport.getStartedDate(), processorReport.getCompletedDate(), dateFormat); for (ActivityReport activityReport : processorReport.getActivityReports()) { WorkflowReport nestedWorkflowReport = activityReport.getNestedWorkflowReport(); if (nestedWorkflowReport != null) for (ProcessorReport nestedProcessorReport : nestedWorkflowReport.getProcessorReports()) addProcessor(sb, max, level + 1, nestedProcessorReport, dateFormat); } }
assertEquals(2, wfReport.getProcessorReports().size()); for (ProcessorReport procRepo : wfReport.getProcessorReports()) { Processor processor = procRepo.getSubject(); assertTrue(wfBundle.getMainWorkflow().getProcessors().containsName(processor.getName()));