DocumentFilter, as the name implies, is a filter for the
Document mutation methods. When a
Document
containing a
DocumentFilter is modified (either through
insert or
remove), it forwards the appropriate
method invocation to the
DocumentFilter. The
default implementation allows the modification to
occur. Subclasses can filter the modifications by conditionally invoking
methods on the superclass, or invoking the necessary methods on
the passed in
FilterBypass. Subclasses should NOT call back
into the Document for the modification
instead call into the superclass or the
FilterBypass.
When remove or insertString is invoked
on the DocumentFilter, the DocumentFilter
may callback into the
FilterBypass multiple times, or for different regions, but
it should not callback into the FilterBypass after returning
from the remove or insertString method.