Interface CharAppender
-
- All Superinterfaces:
java.lang.CharSequence
- All Known Implementing Classes:
DefaultCharAppender,ExpandingCharAppender,NoopCharAppender,WriterCharAppender
public interface CharAppender extends java.lang.CharSequenceThe general interface for classes responsible for appending characters efficiently while handling whitespaces and padding characters.Calls to
appendIgnoringWhitespace(char),appendIgnoringPadding(char, char)andappendIgnoringWhitespaceAndPadding(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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidappend(char ch)Appends the given character.voidappend(char[] ch)Appends characters from an input arrayvoidappend(char[] ch, int from, int length)Appends characters from an input arrayvoidappend(int ch)Appends the given codepoint.voidappend(int[] ch)Appends codepoints from an input arrayvoidappend(java.lang.String string)Appends characters from an inputStringvoidappend(java.lang.String string, int from, int to)Appends the contents of a String to this appendervoidappendIgnoringPadding(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.)voidappendIgnoringWhitespace(char ch)Appends the given character and marks it as ignored if it is a whitespace (ch <= ' ')voidappendIgnoringWhitespaceAndPadding(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.)charappendUntil(char ch, CharInput input, char stop)Appends characters from the input, until a stop character is foundcharappendUntil(char ch, CharInput input, char stop1, char stop2)Appends characters from the input, until a stop character is foundcharappendUntil(char ch, CharInput input, char stop1, char stop2, char stop3)Appends characters from the input, until a stop character is foundvoidfill(char ch, int length)Adds a sequence of repeated characters to the input.java.lang.StringgetAndReset()Returns the accumulated value as a String, discarding any trailing whitespace characters identified when usingappendIgnoringWhitespace(char),appendIgnoringPadding(char, char)orappendIgnoringWhitespaceAndPadding(char, char)char[]getChars()Returns the internal character array.char[]getCharsAndReset()Returns the accumulated characters, discarding any trailing whitespace characters identified when usingappendIgnoringWhitespace(char),appendIgnoringPadding(char, char)orappendIgnoringWhitespaceAndPadding(char, char)intlength()Returns the current accumulated value length (the sum of all appended characters - whitespaceCount).voidprepend(char ch)Prepends the current accumulated value with a charactervoidprepend(char[] chars)Prepends the current accumulated value a sequence of charactersvoidprepend(char ch1, char ch2)Prepends the current accumulated value with a couple of charactersvoidreset()Clears the accumulated value and the whitespace count.voidresetWhitespaceCount()Resets the number of whitespaces accumulated after the last non-whitespace character.voidupdateWhitespace()Updates the internal whitespace count of this appender to trim trailing whitespaces.intwhitespaceCount()Returns the current number of whitespaces accumulated after the last non-whitespace character.
-
-
-
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 appendpadding- 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 appendpadding- 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:
lengthin interfacejava.lang.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)orappendIgnoringWhitespaceAndPadding(char, char)- Returns:
- the number of whitespaces accumulated using
appendIgnoringWhitespace(char),appendIgnoringPadding(char, char)orappendIgnoringWhitespaceAndPadding(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)orappendIgnoringWhitespaceAndPadding(char, char)A subsequent call to
whitespaceCount()should return 0.
-
getAndReset
java.lang.String getAndReset()
Returns the accumulated value as a String, discarding any trailing whitespace characters identified when usingappendIgnoringWhitespace(char),appendIgnoringPadding(char, char)orappendIgnoringWhitespaceAndPadding(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 usingappendIgnoringWhitespace(char),appendIgnoringPadding(char, char)orappendIgnoringWhitespaceAndPadding(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 appendlength- 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 appendedstop- 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 appendedstop1- the first stop characterstop2- 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 appendedstop1- the first stop characterstop2- the second stop characterstop3- 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 arrayfrom- the position of the first character in the array to be appendedlength- 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(java.lang.String string)
Appends characters from an inputString- Parameters:
string- the input String
-
append
void append(java.lang.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 appendto- the index of the last character to append
-
-