Record Class SysmonState

java.lang.Object
java.lang.Record
com.guinetik.hexafun.examples.sysmon.SysmonState
Record Components:
app - The HexaApp instance for invoking use cases and adapters
format - Current output format selection
width - Terminal width for responsive layout
status - Status message to display
statusColor - ANSI color for status message
running - Whether the TUI should continue running

public record SysmonState(HexaApp app, SysmonFormat format, int width, String status, String statusColor, boolean running) extends Record
Immutable state for the System Monitor TUI.

This record holds all state needed to render the UI and process user input. State transitions produce new instances rather than mutating, enabling a functional TUI pattern.

State Transitions

  • Constructor Details

    • SysmonState

      public SysmonState(HexaApp app, SysmonFormat format, int width, String status, String statusColor, boolean running)
      Creates an instance of a SysmonState record class.
      Parameters:
      app - the value for the app record component
      format - the value for the format record component
      width - the value for the width record component
      status - the value for the status record component
      statusColor - the value for the statusColor record component
      running - the value for the running record component
  • Method Details

    • initial

      public static SysmonState initial(HexaApp app)
      Create initial state with default values.
      Parameters:
      app - The configured HexaApp instance
      Returns:
      Initial state ready for rendering
    • withFormat

      public SysmonState withFormat(SysmonFormat f)
      Transition to a new output format.
      Parameters:
      f - The new format to use
      Returns:
      New state with format changed and status message
    • withStatus

      public SysmonState withStatus(String msg, String color)
      Set a status message.
      Parameters:
      msg - The message to display
      color - ANSI color for the message
      Returns:
      New state with status updated
    • stop

      public SysmonState stop()
      Signal that the TUI should stop.
      Returns:
      New state with running=false
    • refresh

      public SysmonState refresh()
      Refresh state, re-detecting terminal width.
      Returns:
      New state with cleared status and updated width
    • metrics

      public SystemMetrics metrics()
      Get current system metrics by invoking the GET_ALL use case.
      Returns:
      Current SystemMetrics from the provider
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • app

      public HexaApp app()
      Returns the value of the app record component.
      Returns:
      the value of the app record component
    • format

      public SysmonFormat format()
      Returns the value of the format record component.
      Returns:
      the value of the format record component
    • width

      public int width()
      Returns the value of the width record component.
      Returns:
      the value of the width record component
    • status

      public String status()
      Returns the value of the status record component.
      Returns:
      the value of the status record component
    • statusColor

      public String statusColor()
      Returns the value of the statusColor record component.
      Returns:
      the value of the statusColor record component
    • running

      public boolean running()
      Returns the value of the running record component.
      Returns:
      the value of the running record component