@Override
public void printStates(RunStateDataPayload runStateDataPayload) {
System.out.println(String.format(" %-20s %-12s %-47s %-7s %s",
"WORKFLOW INSTANCE",
"STATE",
"EXECUTION ID",
"TRIES",
"PREVIOUS EXECUTION MESSAGE"));
CliUtil.groupStates(runStateDataPayload.activeStates()).entrySet().forEach(entry -> {
System.out.println();
System.out.println(String.format("%s %s",
colored(CYAN, entry.getKey().componentId()),
colored(BLUE, entry.getKey().id())));
entry.getValue().forEach(runStateData -> {
final StateData stateData = runStateData.stateData();
final Ansi ansiState = getAnsiForState(runStateData);
final Message lastMessage =
stateData.message().orElse(Message.create(Message.MessageLevel.UNKNOWN, "No info"));
final Ansi ansiMessage = colored(messageColor(lastMessage.level()),
lastMessage.line());
System.out.println(String.format(" %-20s %-20s %-47s %-7d %s",
runStateData.workflowInstance().parameter(),
ansiState,
stateData.executionId().orElse("<no-execution-id>"),
stateData.tries(),
ansiMessage));
});
});
}