Interface CharAppender

All Superinterfaces:
CharSequence
All Known Implementing Classes:
DefaultCharAppender, ElasticCharAppender, ExpandingCharAppender, NoopCharAppender, WriterCharAppender

public interface CharAppender extends CharSequence
The general interface for classes responsible for appending characters efficiently while handling whitespaces and padding characters.

Calls to appendIgnoringWhitespace(char), appendIgnoringPadding(char, char) and appendIgnoringWhitespaceAndPadding(char, char) should accumulate the given character and only discard whitespaces/padding if no non-whitespace is appended:

For example:


 append('a');                   // accumulated value is now "a";        whitespaceCount = 0;
 appendIgnoringWhitespace('b'); // accumulated value is now "ab";       whitespaceCount = 0;
 appendIgnoringWhitespace(' '); // accumulated value remains "ab";      whitespaceCount = 1;
 appendIgnoringWhitespace(' '); // accumulated value remains "ab";      whitespaceCount = 2;
 appendIgnoringWhitespace('c'); // accumulated value is now "ab  c";    whitespaceCount = 0;
 appendIgnoringWhitespace(' '); // accumulated value remains "ab  c";   whitespaceCount = 1;
 appendIgnoringWhitespace('d'); // accumulated value is now "ab  c d";  whitespaceCount = 0;
 append(' ');                                     // accumulated value is now "ab  c d "; whitespaceCount = 0;
  

Implementation note: White spaces should be identified as any character <= ' '

  • Method Summary

    Modifier and Type
    Method
    Description
    void
    append(char ch)
    Appends the given character.
    void
    append(char[] ch)
    Appends characters from an input array
    void
    append(char[] ch, int from, int length)
    Appends characters from an input array
    void
    append(int ch)
    Appends the given codepoint.
    void
    append(int[] ch)
    Appends codepoints from an input array
    void
    Appends the String representation of a given object.
    void
    append(String string)
    Appends characters from an input String
    void
    append(String string, int from, int to)
    Appends the contents of a String to this appender
    void
    appendIgnoringPadding(char ch, char padding)
    Appends the given character and marks it as ignored if it is a padding character (the definition of a padding character is implementation dependent.)
    void
    Appends the given character and marks it as ignored if it is a whitespace (ch <= ' ')
    void
    appendIgnoringWhitespaceAndPadding(char ch, char padding)
    Appends the given character and marks it as ignored if it is a whitespace (ch <= ' ') or a padding character (the definition of a padding character is implementation dependent.)
    char
    appendUntil(char ch, CharInput input, char stop)
    Appends characters from the input, until a stop character is found
    char
    appendUntil(char ch, CharInput input, char stop1, char stop2)
    Appends characters from the input, until a stop character is found
    char
    appendUntil(char ch, CharInput input, char stop1, char stop2, char stop3)
    Appends characters from the input, until a stop character is found
    void
    delete(int count)
    Deletes a given number of characters from the end of the appended content.
    void
    fill(char ch, int length)
    Adds a sequence of repeated characters to the input.
    Returns the accumulated value as a String, discarding any trailing whitespace characters identified when using appendIgnoringWhitespace(char), appendIgnoringPadding(char, char) or appendIgnoringWhitespaceAndPadding(char, char)
    char[]
    Returns the internal character array.
    char[]
    Returns the accumulated characters, discarding any trailing whitespace characters identified when using appendIgnoringWhitespace(char), appendIgnoringPadding(char, char) or appendIgnoringWhitespaceAndPadding(char, char)
    void
    ignore(int count)
    Ignores the given number of characters at the end of the appended content, effectively marking these as whitespace.
    int
    indexOf(char[] charSequence, int from)
    Returns first the position of a given character sequence
    int
    indexOf(char ch, int from)
    Returns first the position of a given character
    int
    indexOf(CharSequence charSequence, int from)
    Returns first the position of a given character sequence
    int
    indexOfAny(char[] chars, int from)
    Returns the first position of any given character
    boolean
    Indicates whether this appender represents an empty String.
    int
    lastIndexOf(char ch)
    Returns the last index of a given character in the current appended (characters that have been marked as whitespace will be ignored)
    int
    Returns the current accumulated value length (the sum of all appended characters - whitespaceCount).
    void
    prepend(char ch)
    Prepends the current accumulated value with a character
    void
    prepend(char[] chars)
    Prepends the current accumulated value a sequence of characters
    void
    prepend(char ch1, char ch2)
    Prepends the current accumulated value with a couple of characters
    void
    remove(int from, int length)
    Removes a section from the appended content
    void
    Clears the accumulated value and the whitespace count.
    void
    Resets the number of whitespaces accumulated after the last non-whitespace character.
    substring(int from, int length)
    Returns a section of the appended content
    void
    Updates the internal whitespace count of this appender to trim trailing whitespaces.
    int
    Returns the current number of whitespaces accumulated after the last non-whitespace character.

    Methods inherited from interface java.lang.CharSequence

    charAt, chars, codePoints, subSequence, toString
  • Method Details

    • appendIgnoringWhitespace

      void appendIgnoringWhitespace(char ch)
      Appends the given character and marks it as ignored if it is a whitespace (ch <= ' ')
      Parameters:
      ch - character to append
    • appendIgnoringPadding

      void appendIgnoringPadding(char ch, char padding)
      Appends the given character and marks it as ignored if it is a padding character (the definition of a padding character is implementation dependent.)
      Parameters:
      ch - character to append
      padding - the padding character to ignore
    • appendIgnoringWhitespaceAndPadding

      void appendIgnoringWhitespaceAndPadding(char ch, char padding)
      Appends the given character and marks it as ignored if it is a whitespace (ch <= ' ') or a padding character (the definition of a padding character is implementation dependent.)
      Parameters:
      ch - character to append
      padding - the padding character to ignore
    • append

      void append(char ch)
      Appends the given character.
      Parameters:
      ch - the character to append
    • indexOf

      int indexOf(char ch, int from)
      Returns first the position of a given character
      Parameters:
      ch - the character to look for
      from - the starting index from where the search will begin.
      Returns:
      the position of the given character in the appended content, -1 if not found
    • indexOf

      int indexOf(char[] charSequence, int from)
      Returns first the position of a given character sequence
      Parameters:
      charSequence - the character sequence to look for
      from - the starting index from where the search will begin.
      Returns:
      the position of the given character sequence in the appended content, -1 if not found
    • indexOf

      int indexOf(CharSequence charSequence, int from)
      Returns first the position of a given character sequence
      Parameters:
      charSequence - the character sequence to look for
      from - the starting index from where the search will begin.
      Returns:
      the position of the given character sequence in the appended content, -1 if not found
    • indexOfAny

      int indexOfAny(char[] chars, int from)
      Returns the first position of any given character
      Parameters:
      chars - the characters to look for
      from - the starting index from where the search will begin.
      Returns:
      the position any one of the given characters in the appended content, -1 if none found
    • substring

      String substring(int from, int length)
      Returns a section of the appended content
      Parameters:
      from - the starting position in the buffer
      length - the number of characters to accumulate from the given start position
      Returns:
      a String with the section of characters accumulated by this appender.
    • remove

      void remove(int from, int length)
      Removes a section from the appended content
      Parameters:
      from - the starting position in the buffer (inclusive)
      length - the number of characters to accumulate from the given start position
    • append

      void append(int ch)
      Appends the given codepoint.
      Parameters:
      ch - the codepoint to append
    • append

      void append(Object obj)
      Appends the String representation of a given object.
      Parameters:
      obj - the object whose String representation will be appended.
    • length

      int length()
      Returns the current accumulated value length (the sum of all appended characters - whitespaceCount).
      Specified by:
      length in interface CharSequence
      Returns:
      the current accumulated value length (the sum of all appended characters - whitespaceCount).
    • whitespaceCount

      int whitespaceCount()
      Returns the current number of whitespaces accumulated after the last non-whitespace character.

      This is the number of whitespaces accumulated using appendIgnoringWhitespace(char), appendIgnoringPadding(char, char) or appendIgnoringWhitespaceAndPadding(char, char)

      Returns:
      the number of whitespaces accumulated using appendIgnoringWhitespace(char), appendIgnoringPadding(char, char) or appendIgnoringWhitespaceAndPadding(char, char)
    • resetWhitespaceCount

      void resetWhitespaceCount()
      Resets the number of whitespaces accumulated after the last non-whitespace character.

      This is the number of whitespaces accumulated using appendIgnoringWhitespace(char), appendIgnoringPadding(char, char) or appendIgnoringWhitespaceAndPadding(char, char)

      A subsequent call to whitespaceCount() should return 0.

    • getAndReset

      String getAndReset()
      Returns the accumulated value as a String, discarding any trailing whitespace characters identified when using appendIgnoringWhitespace(char), appendIgnoringPadding(char, char) or appendIgnoringWhitespaceAndPadding(char, char)

      The internal accumulated value is discarded after invoking this method (as in reset())

      Returns:
      a String containing the accumulated characters without the trailing whitespaces.
    • reset

      void reset()
      Clears the accumulated value and the whitespace count.
    • getCharsAndReset

      char[] getCharsAndReset()
      Returns the accumulated characters, discarding any trailing whitespace characters identified when using appendIgnoringWhitespace(char), appendIgnoringPadding(char, char) or appendIgnoringWhitespaceAndPadding(char, char)

      The internal accumulated value is discarded after invoking this method (as in reset())

      Returns:
      a character array containing the accumulated characters without the trailing whitespaces.
    • getChars

      char[] getChars()
      Returns the internal character array.
      Returns:
      the internal character array.
    • fill

      void fill(char ch, int length)
      Adds a sequence of repeated characters to the input.
      Parameters:
      ch - the character to append
      length - the number of times the given character should be appended.
    • prepend

      void prepend(char ch)
      Prepends the current accumulated value with a character
      Parameters:
      ch - the character to prepend in front of the current accumulated value.
    • prepend

      void prepend(char ch1, char ch2)
      Prepends the current accumulated value with a couple of characters
      Parameters:
      ch1 - the first character to prepend in front of the current accumulated value.
      ch2 - the second character to prepend in front of the current accumulated value.
    • prepend

      void prepend(char[] chars)
      Prepends the current accumulated value a sequence of characters
      Parameters:
      chars - the character sequence to prepend in front of the current accumulated value.
    • updateWhitespace

      void updateWhitespace()
      Updates the internal whitespace count of this appender to trim trailing whitespaces.
    • appendUntil

      char appendUntil(char ch, CharInput input, char stop)
      Appends characters from the input, until a stop character is found
      Parameters:
      ch - the first character of the input to be appended.
      input - the input whose the following characters will be appended
      stop - the stop character
      Returns:
      the stop character found on the input.
    • appendUntil

      char appendUntil(char ch, CharInput input, char stop1, char stop2)
      Appends characters from the input, until a stop character is found
      Parameters:
      ch - the first character of the input to be appended.
      input - the input whose the following characters will be appended
      stop1 - the first stop character
      stop2 - the second stop character
      Returns:
      one of the stop characters found on the input.
    • appendUntil

      char appendUntil(char ch, CharInput input, char stop1, char stop2, char stop3)
      Appends characters from the input, until a stop character is found
      Parameters:
      ch - the first character of the input to be appended.
      input - the input whose the following characters will be appended
      stop1 - the first stop character
      stop2 - the second stop character
      stop3 - the third stop character
      Returns:
      one of the stop characters found on the input.
    • append

      void append(char[] ch, int from, int length)
      Appends characters from an input array
      Parameters:
      ch - the character array
      from - the position of the first character in the array to be appended
      length - the number of characters to be appended from the given posiion.
    • append

      void append(char[] ch)
      Appends characters from an input array
      Parameters:
      ch - the character array
    • append

      void append(int[] ch)
      Appends codepoints from an input array
      Parameters:
      ch - the codepoint array
    • append

      void append(String string)
      Appends characters from an input String
      Parameters:
      string - the input String
    • append

      void append(String string, int from, int to)
      Appends the contents of a String to this appender
      Parameters:
      string - the string whose characters will be appended.
      from - the index of the first character to append
      to - the index of the last character to append
    • ignore

      void ignore(int count)
      Ignores the given number of characters at the end of the appended content, effectively marking these as whitespace. Invoking resetWhitespaceCount() or updateWhitespace() will undo this effect.
      Parameters:
      count - the number of characters to ignore
    • delete

      void delete(int count)
      Deletes a given number of characters from the end of the appended content. Will reset the internal whitespace count if any. Invoke updateWhitespace() to recalculate the number of trailing whitespaces in the appended content.
      Parameters:
      count - the number of characters to delete.
    • isEmpty

      boolean isEmpty()
      Indicates whether this appender represents an empty String.
      Specified by:
      isEmpty in interface CharSequence
      Returns:
      true calling getAndReset() would return null, otherwise false.
    • lastIndexOf

      int lastIndexOf(char ch)
      Returns the last index of a given character in the current appended (characters that have been marked as whitespace will be ignored)
      Parameters:
      ch - the character to look for
      Returns:
      the last position of the given character in the appended content, or -1 if not found.