Base class to facilitate creating filters based on text content, loading
text into
StringBuilder for memory processing.
Since 2.2.0 this class limits the memory used for content
filtering by reading one section of text at a time. Each
sections are sent for filtering once they are read until a match is found.
No two sections exists in memory at once. Sub-classes should
respect this approach. Each section have a maximum number of characters
equal to the maximum read size defined using
#setMaxReadSize(int).
When none is set, the default read size is defined by
TextReader#DEFAULT_MAX_READ_SIZE.
An attempt is made to break sections nicely after a paragraph, sentence,
or word. When not possible, long text will be cut at a size equal
to the maximum read size.
Implementors should be conscious about memory when dealing with the string
builder.
Subclasses inherit this
IXMLConfigurable configuration:
<!-- parent tag has these attributes:
maxReadSize="(max characters to read at once)"
sourceCharset="(character encoding)"
onMatch="[include|exclude]"
-->
<restrictTo caseSensitive="[false|true]"
field="(name of header/metadata field name to match)" >
(regular expression of value to match)
</restrictTo>
<!-- multiple "restrictTo" tags allowed (only one needs to match) -->