Class AbstractStringTransformer

  • All Implemented Interfaces:
    IXMLConfigurable, IImporterHandler, IDocumentTransformer
    Direct Known Subclasses:
    ReduceConsecutivesTransformer, ReplaceTransformer, ScriptTransformer, StripAfterTransformer, StripBeforeTransformer, StripBetweenTransformer

    public abstract class AbstractStringTransformer
    extends AbstractCharStreamTransformer

    Base class to facilitate creating transformers on text content, loading text into a StringBuilder for memory processing.

    Since 2.2.0 this class limits the memory used for content transformation by reading one section of text at a time. Each sections are sent for transformation once they are read, so that no two sections exists in memory at once. Sub-classes should respect this approach. Each of them 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.

    XML configuration usage:

    
    maxReadSize="(max characters to read at once)"
       sourceCharset="(character encoding)"

    Subclasses inherit the above IXMLConfigurable attribute(s), in addition to <restrictTo>.

    Subclasses inherit this IXMLConfigurable configuration:

      <!-- parent tag has these attribute:
          maxReadSize="(max characters to read at once)"
          sourceCharset="(character encoding)"
        -->
      <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) -->
     
    Author:
    Pascal Essiembre