Class CommandLine.Help.Ansi.Text

java.lang.Object
org.apache.logging.log4j.core.tools.picocli.CommandLine.Help.Ansi.Text
All Implemented Interfaces:
Cloneable
Enclosing class:
CommandLine.Help.Ansi

public class CommandLine.Help.Ansi.Text extends Object implements Cloneable
Encapsulates rich text with styles and colors. Text objects may be constructed with Strings containing markup like @|bg(red),white,underline some text|@, and this class converts the markup to ANSI escape codes.

Internally keeps both an enriched and a plain text representation to allow layout components to calculate text width while remaining unaware of the embedded ANSI escape codes.

  • Field Details

  • Constructor Details

    • Text

      public Text(int maxLength)
      Constructs a Text with the specified max length (for use in a TextTable Column).
      Parameters:
      maxLength - max length of this text
    • Text

      public Text(String input)
      Constructs a Text with the specified String, which may contain markup like @|bg(red),white,underline some text|@.
      Parameters:
      input - the string with markup to parse
  • Method Details

    • addStyledSection

      private void addStyledSection(int start, int length, String startStyle, String endStyle)
    • clone

      public Object clone()
      Overrides:
      clone in class Object
    • splitLines

      public CommandLine.Help.Ansi.Text[] splitLines()
    • substring

      public CommandLine.Help.Ansi.Text substring(int start)
      Returns a new Text instance that is a substring of this Text. Does not modify this instance!
      Parameters:
      start - index in the plain text where to start the substring
      Returns:
      a new Text instance that is a substring of this Text
    • substring

      public CommandLine.Help.Ansi.Text substring(int start, int end)
      Returns a new Text instance that is a substring of this Text. Does not modify this instance!
      Parameters:
      start - index in the plain text where to start the substring
      end - index in the plain text where to end the substring
      Returns:
      a new Text instance that is a substring of this Text
    • append

      public CommandLine.Help.Ansi.Text append(String string)
      Returns a new Text instance with the specified text appended. Does not modify this instance!
      Parameters:
      string - the text to append
      Returns:
      a new Text instance
    • append

      Returns a new Text instance with the specified text appended. Does not modify this instance!
      Parameters:
      other - the text to append
      Returns:
      a new Text instance
    • getStyledChars

      public void getStyledChars(int from, int length, CommandLine.Help.Ansi.Text destination, int offset)
      Copies the specified substring of this Text into the specified destination, preserving the markup.
      Parameters:
      from - start of the substring
      length - length of the substring
      destination - destination Text to modify
      offset - indentation (padding)
    • plainString

      public String plainString()
      Returns the plain text without any formatting.
      Returns:
      the plain text without any formatting
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Returns a String representation of the text with ANSI escape codes embedded, unless ANSI is CommandLine.Help.Ansi.enabled() not enabled}, in which case the plain text is returned.
      Overrides:
      toString in class Object
      Returns:
      a String representation of the text with ANSI escape codes embedded (if enabled)
    • findSectionContaining

      private CommandLine.Help.Ansi.StyledSection findSectionContaining(int index)