com.univocity.parsers.common.input
Interface CharAppender

All Superinterfaces:
CharSequence
All Known Implementing Classes:
DefaultCharAppender, 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 <= ' '

Author:
uniVocity Software Pty Ltd - parsers@univocity.com

Method Summary
 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 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 appendIgnoringWhitespace(char ch)
          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 fill(char ch, int length)
          Adds a sequence of repeated characters to the input.
 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)
 char[] getChars()
          Returns the internal character array.
 char[] getCharsAndReset()
          Returns the accumulated characters, discarding any trailing whitespace characters identified when using appendIgnoringWhitespace(char), appendIgnoringPadding(char, char) or appendIgnoringWhitespaceAndPadding(char, char)
 int length()
          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 reset()
          Clears the accumulated value and the whitespace count.
 void resetWhitespaceCount()
          Resets the number of whitespaces accumulated after the last non-whitespace character.
 void updateWhitespace()
          Updates the internal whitespace count of this appender to trim trailing whitespaces.
 int whitespaceCount()
          Returns the current number of whitespaces accumulated after the last non-whitespace character.
 
Methods inherited from interface java.lang.CharSequence
charAt, subSequence, toString
 

Method Detail

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

append

void append(int ch)
Appends the given codepoint.

Parameters:
ch - the codepoint to append

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


Copyright © 2018 uniVocity Software Pty Ltd. All rights reserved.