Class TableAccumulator

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

public class TableAccumulator extends Object implements Accumulator
An accumulator that formats results as a table.

This accumulator organizes results into a table format where rows are sources and columns are result types. This is useful for comparing results across multiple nodes.

Example Output

 Node                | cpu                           | gpu                           | memory
 ----------------------------------------------------------------------------------------------------
 node-web-01         | Intel Xeon E5-2680 v4         | No NVIDIA GPU                 | 64Gi
 node-web-02         | Intel Xeon E5-2680 v4         | No NVIDIA GPU                 | 64Gi
 node-db-01          | AMD EPYC 7542                 | NVIDIA A100                   | 256Gi
 
Since:
2.8.0
Author:
devteam@scivics-lab.com
  • Constructor Details

    • TableAccumulator

      public TableAccumulator()
      Constructs a TableAccumulator with default column width of 30 characters.
    • TableAccumulator

      public TableAccumulator(int columnWidth)
      Constructs a TableAccumulator with custom column width.
      Parameters:
      columnWidth - the width of each column in characters
  • Method Details

    • add

      public void add(String source, String type, String data)
      Description copied from interface: Accumulator
      Adds a result to this accumulator.
      Specified by:
      add in interface Accumulator
      Parameters:
      source - the source identifier (e.g., actor name like "node-localhost")
      type - the type of result (e.g., "cpu", "memory", "error")
      data - the result data as a string
    • getSummary

      public String getSummary()
      Description copied from interface: Accumulator
      Returns a formatted summary of all accumulated results.

      The format of the summary depends on the implementation. For example, StreamingAccumulator returns a simple count, while BufferedAccumulator returns all results grouped by source.

      Specified by:
      getSummary in interface Accumulator
      Returns:
      the formatted summary string
    • getCount

      public int getCount()
      Description copied from interface: Accumulator
      Returns the number of results that have been added.
      Specified by:
      getCount in interface Accumulator
      Returns:
      the count of added results
    • clear

      public void clear()
      Description copied from interface: Accumulator
      Clears all accumulated results.

      After calling this method, the accumulator should be in its initial state, as if no results had been added.

      Specified by:
      clear in interface Accumulator