# Interface HelpAppendable

All Superinterfaces:
  `Appendable`

All Known Implementing Classes:
  `FilterHelpAppendable, TextHelpAppendable`

public interface HelpAppendable extends Appendable
Defines a semantic scribe. The semantic scribe appends text to an output based on the semantic meaning of the type of string. For example, a Paragraph versus a Heading.

The representation of the semantics is dependent upon the format being output. For example, the plain text output for a paragraph may print the text followed by two line breaks, while an XHTML output would print the text surrounded by <p> and </p>.

Note the `Appendable` documentation on the topics of Unicode and threading, these comments also apply here.

Since:
  1.10.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default void`
  `appendFormat(String format, Object... args)`
  Appends a formatted string using the specified format string and arguments.
  `void`
  `appendHeader(int level, CharSequence text)`
  Appends a header.
  `void`
  `appendList(boolean ordered, Collection<CharSequence> list)`
  Appends a list.
  `void`
  `appendParagraph(CharSequence paragraph)`
  Appends a paragraph.
  `default void`
  `appendParagraphFormat(String format, Object... args)`
  Appends a formatted string as a paragraph.
  `void`
  `appendTable(TableDefinition table)`
  Appends a table.
  `void`
  `appendTitle(CharSequence title)`
  Appends a title.

  ### Methods inherited from interface Appendable

  `append, append, append`

- ## Method Details

  - ### appendFormat

    default void appendFormat(String format, Object... args) throws IOException
    Appends a formatted string using the specified format string and arguments.

    Short-hand for calling:

        helpAppendable.append.(String.format(format, args));

    Parameters:
      `format` - The format string for `String.format(String, Object...)`.
      `args` - Arguments to `String.format(String, Object...)`.
    Throws:
      `IllegalFormatException` - See `String.format(String, Object...)`.
      `IOException` - If an output error occurs.
    See Also:
      - `String.format(String, Object...)`
      - `Formatter`
      - `Appendable.append(CharSequence)`

  - ### appendHeader

    void appendHeader(int level, CharSequence text) throws IOException
    Appends a header.
    Parameters:
      `level` - the level of the header. This is equivalent to the "1", "2", or "3" in the HTML "h1", "h2", "h3" tags.
      `text` - the text for the header, null is a noop.
    Throws:
      `IOException` - If an output error occurs.

  - ### appendList

    void appendList(boolean ordered, Collection<CharSequence> list) throws IOException
    Appends a list.
    Parameters:
      `ordered` - `true` if the list should be ordered.
      `list` - the list to write, null is a noop.
    Throws:
      `IOException` - If an output error occurs.

  - ### appendParagraph

    void appendParagraph(CharSequence paragraph) throws IOException
    Appends a paragraph.
    Parameters:
      `paragraph` - the paragraph to write, null is a noop.
    Throws:
      `IOException` - If an output error occurs.

  - ### appendParagraphFormat

    default void appendParagraphFormat(String format, Object... args) throws IOException
    Appends a formatted string as a paragraph.

        helpAppendable.appendParagraph.(String.format(format, args));

    Parameters:
      `format` - The format string for `String.format(String, Object...)`.
      `args` - Arguments to `String.format(String, Object...)`.
    Throws:
      `IllegalFormatException` - See `String.format(String, Object...)`.
      `IOException` - If an output error occurs.
    See Also:
      - `String.format(String, Object...)`
      - `Formatter`
      - `Appendable.append(CharSequence)`

  - ### appendTable

    void appendTable(TableDefinition table) throws IOException
    Appends a table.
    Parameters:
      `table` - the table definition to write, null is a noop.
    Throws:
      `IOException` - If an output error occurs.

  - ### appendTitle

    void appendTitle(CharSequence title) throws IOException
    Appends a title.
    Parameters:
      `title` - the title to write, null is a noop.
    Throws:
      `IOException` - If an output error occurs.