Class ConsoleAccumulator

java.lang.Object
com.scivicslab.actoriac.accumulator.ConsoleAccumulator
All Implemented Interfaces:
com.scivicslab.pojoactor.core.accumulator.Accumulator

public class ConsoleAccumulator extends Object implements com.scivicslab.pojoactor.core.accumulator.Accumulator
Accumulator that outputs to the console (System.out/System.err).

This accumulator writes output directly to the console as it arrives. It supports different output types:

  • cowsay - Rendered cowsay ASCII art (output as-is)
  • stdout - Command stdout (output as-is)
  • stderr - Command stderr (output to System.err)

Usage

ConsoleAccumulator console = new ConsoleAccumulator();
console.add("node-1", "stdout", "command output line");
console.add("workflow", "cowsay", renderedCowsayArt);
Since:
2.12.0
Author:
devteam@scivicslab.com
  • Field Details

  • Constructor Details

    • ConsoleAccumulator

      Constructs a ConsoleAccumulator with default System.out and System.err.
    • ConsoleAccumulator

      public ConsoleAccumulator(PrintStream stdout, PrintStream stderr)
      Constructs a ConsoleAccumulator with custom output streams.
      Parameters:
      stdout - the stream for stdout output
      stderr - the stream for stderr output
  • Method Details

    • setQuiet

      public void setQuiet(boolean quiet)
      Sets quiet mode. When quiet, no output is written.
      Parameters:
      quiet - true to suppress output, false to enable output
    • isQuiet

      public boolean isQuiet()
      Returns whether quiet mode is enabled.
      Returns:
      true if quiet mode is enabled
    • add

      public void add(String source, String type, String data)
      Specified by:
      add in interface com.scivicslab.pojoactor.core.accumulator.Accumulator
    • formatOutput

      private String formatOutput(String source, String data)
      Formats the output with a fixed-width source prefix on each line.

      Every line of output is prefixed with [source] where source is left-justified in a fixed-width field. This allows multi-line output (such as cowsay ASCII art) to remain properly aligned while still being identifiable by source.

      Example output:

      [node-web-01    ] command output here
      [workflow       ]  _______________________
      [workflow       ] invalid input: '<' Starting workflow... >
      [workflow       ]  -----------------------
      
      Parameters:
      source - the source identifier (e.g., "node-web-01", "cli")
      data - the output data (may contain multiple lines)
      Returns:
      the formatted output string with prefix on each line
    • formatPrefix

      private String formatPrefix(String source)
      Creates a prefix from the source name.
      Parameters:
      source - the source identifier
      Returns:
      formatted prefix like "[node-web-01] "
    • getSummary

      public String getSummary()
      Specified by:
      getSummary in interface com.scivicslab.pojoactor.core.accumulator.Accumulator
    • getCount

      public int getCount()
      Specified by:
      getCount in interface com.scivicslab.pojoactor.core.accumulator.Accumulator
    • clear

      public void clear()
      Specified by:
      clear in interface com.scivicslab.pojoactor.core.accumulator.Accumulator