int namemax = 0;
int nodemax = 0;
ArrayList<IWorkItemState> items = new ArrayList<IWorkItemState>();
for ( Long k: map.keySet() ) {
IWorkItemState iws = map.get(k);
String id = iws.getWiId();
String node = iws.getNode();
if ( node == null ) node = "<unassigned>";
namemax = Math.max(namemax, id.length());
nodemax = Math.max(nodemax, node.length());
items.add(iws);
}
String fmt;
if ( csv ) {
// seq,id,state,overhead,proc,node,pid
fmt = "%s\t%s\t%s\t%s\t%s\t%s\t%s";
} else {
fmt = "%5s %" + namemax + "s %10s %16s %16s %" + nodemax + "s %5s";
System.out.println(String.format(fmt, "Seq", "Id", "State", "QTime", "ProcTime", "Node", "PID"));
System.out.println(String.format(fmt, "-----", dup("-", namemax), "----------", "----------------", "----------------", dup("-", nodemax), "-----"));
}
Comparator<IWorkItemState> sorter = null;
switch (workItemSort) {
case Seq: sorter = new WorkItemSequenceSorter(); break;
case Id: sorter = new WorkItemIdSorter(); break;
case State: sorter = new WorkItemStateSorter(); break;
case QTime: sorter = new WorkItemQTimeSorter(); break;
case ProcessTime: sorter = new WorkItemProcessTimeSorter(); break;
case Node: sorter = new WorkItemNodeSorter(); break;
case Pid: sorter = new WorkItemPidSorter(); break;
}
Collections.sort(items, sorter);
for ( IWorkItemState iws : items ) {
String seq = iws.getSeqNo();
String id = iws.getWiId();
String node = iws.getNode();
if ( node == null ) node = "<unassigned>";
String pid = iws.getPid();
if ( pid == null ) pid = "<n/a>";
State state = iws.getState();
long proctime = iws.getMillisProcessing();
long overhead = iws.getMillisOverhead();
System.out.println(String.format(fmt, seq, id, state, overhead, proctime, node, pid));
}
}