Class ColorBuffer

java.lang.Object
software.amazon.smithy.cli.ColorBuffer
All Implemented Interfaces:
Appendable, AutoCloseable

public final class ColorBuffer extends Object implements Appendable, AutoCloseable
An Appendable that supports color provided by a ColorFormatter.

A ColorBuffer is not thread-safe and is meant to write short contiguous output text that will eventually be written to other things like a CliPrinter.

When wrapping a CliPrinter, ensure you use close() to write to the printer. Alternatively, wrap the buffer in a try-with-resources block.

  • Method Details

    • of

      public static ColorBuffer of(ColorFormatter colors, Appendable sink)
      Create a new ColorBuffer that directly writes to the given sink.

      No additional buffering is used when buffering over an Appendable. Each call to write to the buffer will write to the appendable.

      Parameters:
      colors - ColorFormatter used to provide colors and style.
      sink - Where to write.
      Returns:
      Returns the created buffer.
    • of

      public static ColorBuffer of(ColorFormatter colors, CliPrinter sink)
      Create a new ColorBuffer that stores all output to an internal buffer and only writes to the given CliPrinter when close() is called.
      Parameters:
      colors - ColorFormatter used to provide colors and style.
      sink - Where to write.
      Returns:
      Returns the created buffer.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • append

      public ColorBuffer append(CharSequence csq)
      Specified by:
      append in interface Appendable
    • append

      public ColorBuffer append(CharSequence csq, int start, int end)
      Specified by:
      append in interface Appendable
    • append

      public ColorBuffer append(char c)
      Specified by:
      append in interface Appendable
    • print

      public ColorBuffer print(String text, Style... styles)
      Writes styled text to the builder using the CliPrinter's color settings.
      Parameters:
      text - Text to write.
      styles - Styles to apply to the text.
      Returns:
      Returns self.
    • println

      public ColorBuffer println(String text, Style... styles)
      Prints a line of styled text to the buffer.
      Parameters:
      text - Text to print.
      styles - Styles to apply.
      Returns:
      Returns self.
    • println

      public ColorBuffer println()
      Writes a system-dependent new line.
      Returns:
      Returns the buffer.
    • style

      public ColorBuffer style(Consumer<ColorBuffer> bufferConsumer, Style... styles)
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable