AttributeSource.captureState() and AttributeSource.restoreState(State)
which support all attributes.@Deprecated public abstract class BufferedTokenStream extends TokenFilter
// Example of a class implementing the rule "A" "B" => "Q" "B"
class MyTokenStream extends BufferedTokenStream {
public MyTokenStream(TokenStream input) {super(input);}
protected Token process(Token t) throws IOException {
if ("A".equals(t.termText())) {
Token t2 = read();
if (t2!=null && "B".equals(t2.termText())) t.setTermText("Q");
if (t2!=null) pushBack(t2);
}
return t;
}
}
// Example of a class implementing "A" "B" => "A" "A" "B"
class MyTokenStream extends BufferedTokenStream {
public MyTokenStream(TokenStream input) {super(input);}
protected Token process(Token t) throws IOException {
if ("A".equals(t.termText()) && "B".equals(peek(1).termText()))
write((Token)t.clone());
return t;
}
}
NOTE: BufferedTokenStream does not clone() any Tokens. This is instead the
responsibility of the implementing subclass. In the "A" "B" => "A" "A" "B"
example above, the subclass must clone the additional "A" it creates.AttributeSource.AttributeFactory, AttributeSource.Stateinput| Constructor and Description |
|---|
BufferedTokenStream(TokenStream input)
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
incrementToken()
Deprecated.
|
protected Iterable<Token> |
output()
Deprecated.
Provides direct Iterator access to the buffered output stream.
|
protected Token |
peek(int n)
Deprecated.
Peek n tokens ahead in the buffered input stream, without modifying
the stream.
|
protected abstract Token |
process(Token t)
Deprecated.
Process a token.
|
protected void |
pushBack(Token t)
Deprecated.
Push a token back into the buffered input stream, such that it will
be returned by a future call to
read() |
protected Token |
read()
Deprecated.
Read a token from the buffered input stream.
|
void |
reset()
Deprecated.
|
protected void |
write(Token t)
Deprecated.
Write a token to the buffered output stream
|
close, endaddAttribute, addAttributeImpl, captureState, clearAttributes, cloneAttributes, copyTo, equals, getAttribute, getAttributeClassesIterator, getAttributeFactory, getAttributeImplsIterator, hasAttribute, hasAttributes, hashCode, reflectAsString, reflectWith, restoreState, toStringpublic BufferedTokenStream(TokenStream input)
protected abstract Token process(Token t) throws IOException
IOExceptionpublic final boolean incrementToken()
throws IOException
incrementToken in class TokenStreamIOExceptionprotected Token read() throws IOException
IOExceptionprotected void pushBack(Token t)
read()protected Token peek(int n) throws IOException
n - Number of tokens into the input stream to peek, 1 based ...
0 is invalidread() from the stream.IOExceptionprotected void write(Token t)
protected Iterable<Token> output()
public void reset()
throws IOException
reset in class TokenFilterIOException