Package net.sf.saxon.tinytree
Class CompressedWhitespace
java.lang.Object
net.sf.saxon.tinytree.CompressedWhitespace
- All Implemented Interfaces:
CharSequence
This class provides a compressed representation of a sequence of whitespace characters. The representation
is a sequence of bytes: in each byte the top two bits indicate which whitespace character is used
(x9, xA, xD, or x20) and the bottom six bits indicate the number of such characters. A zero byte is a filler.
We don't compress the sequence if it would occupy more than 8 bytes, because that's the space we've got available
in the TinyTree arrays.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionchar
charAt
(int index) Returns thechar
value at the specified index.static CharSequence
compress
(CharSequence in) Attempt to compress a CharSequenceboolean
Indicates whether some other object is "equal to" this one.long
int
hashCode()
Returns a hash code value for the object.int
length()
static void
subSequence
(int start, int end) Returns a newCharSequence
that is a subsequence of this sequence.toString()
Returns a string representation of the object.uncompress
(FastStringBuffer buffer) Uncompress the whitespace to a FastStringBuffervoid
Write the value to a Writervoid
writeEscape
(boolean[] specialChars, Writer writer) Write the value to a Writer with escaping of special charactersMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.CharSequence
chars, codePoints, isEmpty
-
Constructor Details
-
CompressedWhitespace
public CompressedWhitespace(long compressedValue)
-
-
Method Details
-
compress
Attempt to compress a CharSequence- Parameters:
in
- the CharSequence to be compressed- Returns:
- the compressed sequence if it can be compressed; or the original CharSequence otherwise
-
uncompress
Uncompress the whitespace to a FastStringBuffer- Parameters:
buffer
- the buffer to which the whitespace is to be appended. The parameter may be null, in which case a new buffer is created.- Returns:
- the FastStringBuffer to which the whitespace has been appended. If a buffer was supplied in the argument, this will be the same buffer.
-
getCompressedValue
public long getCompressedValue() -
length
public int length()- Specified by:
length
in interfaceCharSequence
-
charAt
public char charAt(int index) Returns thechar
value at the specified index. An index ranges from zero to length() - 1. The firstchar
value of the sequence is at index zero, the next at index one, and so on, as for array indexing.If the
char
value specified by the index is a surrogate, the surrogate value is returned.- Specified by:
charAt
in interfaceCharSequence
- Parameters:
index
- the index of thechar
value to be returned- Returns:
- the specified
char
value - Throws:
IndexOutOfBoundsException
- if the index argument is negative or not less than length()
-
subSequence
Returns a newCharSequence
that is a subsequence of this sequence. The subsequence starts with thechar
value at the specified index and ends with thechar
value at index end - 1. The length (inchar
s) of the returned sequence is end - start, so if start == end then an empty sequence is returned.- Specified by:
subSequence
in interfaceCharSequence
- Parameters:
start
- the start index, inclusiveend
- the end index, exclusive- Returns:
- the specified subsequence
- Throws:
IndexOutOfBoundsException
- if start or end are negative, if end is greater than length(), or if start is greater than end
-
equals
Indicates whether some other object is "equal to" this one. -
hashCode
public int hashCode()Returns a hash code value for the object. -
toString
Returns a string representation of the object.- Specified by:
toString
in interfaceCharSequence
- Overrides:
toString
in classObject
-
write
Write the value to a Writer- Throws:
IOException
-
writeEscape
Write the value to a Writer with escaping of special characters- Throws:
IOException
-
main
-