Class CharArray
java.lang.Object
com.opensymphony.module.sitemesh.html.util.CharArray
A leaner, meaner version of StringBuffer.
It provides basic functionality to handle dynamically-growing
char arrays as quickly as possible. This class is not threadsafe.
- Author:
- Chris Miller
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) char[]
(package private) int
(package private) int
(package private) int
-
Constructor Summary
ConstructorsConstructorDescriptionCharArray
(int size) Constructs a CharArray that is initialized to the specified size. -
Method Summary
Modifier and TypeMethodDescriptionappend
(char c) Appends a single character to the end of the character array.append
(char[] chars) Appends the supplied characters to the end of the array.append
(char[] chars, int position, int length) Appends an existing CharArray on to this one.Appends the supplied string to the end of this character array.char
charAt
(int pos) Returns the character that is at the specified position in the array.final void
clear()
Clear the contents.boolean
compareLower
(String lowerStr, int offset) Compares the supplied uppercase string with the contents of the character array, starting at the offset specified.boolean
compareLowerSubstr
(String lowerStr) This compares a substring of this character array (as specified by thesetSubstr(int, int)
method call) with the supplied string.Returns the substring that was specified by thesetSubstr(int, int)
call.private final void
grow
(int minSize) Grows the internal array by either ~100% or minSize (whichever is larger), up to a maximum size of Integer.MAX_VALUE.int
length()
Returns the current length of the character array.void
setLength
(int newSize) Changes the size of the character array to the value specified.void
setSubstr
(int begin, int end) Allows an arbitrary substring of this character array to be specified.int
Returns the hashcode for a lowercase version of the array's substring (as set by thesetSubstr(int, int)
method).substring
(int begin, int end) Returns a substring from within this character array.toString()
Returns a String represenation of the character array.void
writeTo
(PrintWriter writer)
-
Field Details
-
size
int size -
buffer
char[] buffer -
subStrStart
int subStrStart -
subStrLen
int subStrLen
-
-
Constructor Details
-
CharArray
public CharArray(int size) Constructs a CharArray that is initialized to the specified size. Do not pass in a negative value because there is no bounds checking!
-
-
Method Details
-
toString
Returns a String represenation of the character array. -
charAt
public char charAt(int pos) Returns the character that is at the specified position in the array. There is no bounds checking on this method so be sure to pass in a sensible value. -
setLength
public void setLength(int newSize) Changes the size of the character array to the value specified. If the new size is less than the current size, the data in the internal array will be truncated. If the new size is <= 0, the array will be reset to empty (but, unlike StringBuffer, the internal array will NOT be shrunk). If the new size is invalid input: '>' the current size, the array will be padded out with null characters ('\u0000').- Parameters:
newSize
- the new size of the character array
-
length
public int length()Returns the current length of the character array. -
append
Appends an existing CharArray on to this one. Passing in a null CharArray will result in a NullPointerException. -
append
Appends the supplied characters to the end of the array. -
append
-
append
Appends a single character to the end of the character array. -
append
Appends the supplied string to the end of this character array. Passing in a null string will result in a NullPointerException. -
substring
Returns a substring from within this character array. Note that NO range checking is performed! -
setSubstr
public void setSubstr(int begin, int end) Allows an arbitrary substring of this character array to be specified. This method should be called prior to callingcompareLowerSubstr(String)
to set the range of the substring comparison.- Parameters:
begin
- the starting offset into the character array.end
- the ending offset into the character array.
-
getLowerSubstr
Returns the substring that was specified by thesetSubstr(int, int)
call. -
compareLowerSubstr
This compares a substring of this character array (as specified by thesetSubstr(int, int)
method call) with the supplied string. The supplied string must be lowercase, otherwise the comparison will fail. -
substrHashCode
public int substrHashCode()Returns the hashcode for a lowercase version of the array's substring (as set by thesetSubstr(int, int)
method). This uses the same calculation as the String.hashCode() method so that it remains compatible with the hashcodes of normal strings. -
compareLower
Compares the supplied uppercase string with the contents of the character array, starting at the offset specified. This is a specialized method to help speed up the FastPageParser slightly. The supplied string is assumed to contain only uppercase ASCII characters. The offset indicates the offset into the character array that the comparison should start from. If (and only if) the supplied string and the relevant portion of the character array are considered equal, this method will return true. -
grow
private final void grow(int minSize) Grows the internal array by either ~100% or minSize (whichever is larger), up to a maximum size of Integer.MAX_VALUE. -
clear
public final void clear()Clear the contents. -
writeTo
-