public abstract class CharFilter extends Reader
Reader
with additional offset
correction. Tokenizer
s will automatically use correctOffset(int)
if a CharFilter subclass is used.
This class is abstract: at a minimum you must implement Reader.read(char[], int, int)
,
transforming the input in some way from input
, and correct(int)
to adjust the offsets to match the originals.
You can optionally provide more efficient implementations of additional methods
like Reader.read()
, Reader.read(char[])
, Reader.read(java.nio.CharBuffer)
,
but this is not required.
For examples and integration with Analyzer
, see the
Analysis package documentation
.
Modifier and Type | Field and Description |
---|---|
protected Reader |
input
The underlying character-input stream.
|
Constructor and Description |
---|
CharFilter(Reader input)
Create a new CharFilter wrapping the provided reader.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the underlying input stream.
|
protected abstract int |
correct(int currentOff)
Subclasses override to correct the current offset.
|
int |
correctOffset(int currentOff)
Chains the corrected offset through the input
CharFilter(s).
|
protected final Reader input
public CharFilter(Reader input)
input
- a Reader, can also be a CharFilter for chaining.public void close() throws IOException
NOTE:
The default implementation closes the input Reader, so
be sure to call super.close()
when overriding this method.
close
in interface Closeable
close
in interface AutoCloseable
close
in class Reader
IOException
protected abstract int correct(int currentOff)
currentOff
- current offsetpublic final int correctOffset(int currentOff)
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.