LUCENE-3969: Simplify the crazy Reader wrapper

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene3969@1311358 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Uwe Schindler 2012-04-09 17:53:27 +00:00
parent f41576a306
commit f6f8e38cfa
1 changed files with 10 additions and 41 deletions

View File

@ -52,6 +52,7 @@ import org.apache.lucene.analysis.MockTokenizer;
import org.apache.lucene.analysis.TokenFilter; import org.apache.lucene.analysis.TokenFilter;
import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.Tokenizer; import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.charfilter.CharFilter;
import org.apache.lucene.analysis.charfilter.NormalizeCharMap; import org.apache.lucene.analysis.charfilter.NormalizeCharMap;
import org.apache.lucene.analysis.commongrams.CommonGramsFilter; import org.apache.lucene.analysis.commongrams.CommonGramsFilter;
import org.apache.lucene.analysis.compound.HyphenationCompoundWordTokenFilter; import org.apache.lucene.analysis.compound.HyphenationCompoundWordTokenFilter;
@ -597,11 +598,11 @@ public class TestRandomChains extends BaseTokenStreamTestCase {
while (spec.tokenizer == null) { while (spec.tokenizer == null) {
final Constructor<? extends Tokenizer> ctor = tokenizers.get(random.nextInt(tokenizers.size())); final Constructor<? extends Tokenizer> ctor = tokenizers.get(random.nextInt(tokenizers.size()));
final StringBuilder descr = new StringBuilder(); final StringBuilder descr = new StringBuilder();
CheckThatYouDidntReadAnythingReaderWrapper wrapper = new CheckThatYouDidntReadAnythingReaderWrapper(reader); final CheckThatYouDidntReadAnythingReaderWrapper wrapper = new CheckThatYouDidntReadAnythingReaderWrapper(reader);
final Object args[] = newTokenizerArgs(random, wrapper, ctor.getParameterTypes()); final Object args[] = newTokenizerArgs(random, wrapper, ctor.getParameterTypes());
spec.tokenizer = createComponent(ctor, args, descr); spec.tokenizer = createComponent(ctor, args, descr);
if (spec.tokenizer == null) { if (spec.tokenizer == null) {
assert wrapper.readSomething == false; assertFalse(ctor.getDeclaringClass().getName() + " has read something in ctor but failed with UOE/IAE", wrapper.readSomething);
} }
spec.toString = descr.toString(); spec.toString = descr.toString();
} }
@ -649,73 +650,41 @@ public class TestRandomChains extends BaseTokenStreamTestCase {
} }
} }
// wants charfilter to be a filterreader... static final class CheckThatYouDidntReadAnythingReaderWrapper extends CharFilter {
static class CheckThatYouDidntReadAnythingReaderWrapper extends CharStream {
boolean readSomething; boolean readSomething;
CharStream in;
CheckThatYouDidntReadAnythingReaderWrapper(Reader in) { CheckThatYouDidntReadAnythingReaderWrapper(Reader in) {
this.in = CharReader.get(in); super(CharReader.get(in));
}
@Override
public int correctOffset(int currentOff) {
return in.correctOffset(currentOff);
}
@Override
public void close() throws IOException {
in.close();
} }
@Override @Override
public int read(char[] cbuf, int off, int len) throws IOException { public int read(char[] cbuf, int off, int len) throws IOException {
readSomething = true; readSomething = true;
return in.read(cbuf, off, len); return super.read(cbuf, off, len);
} }
@Override @Override
public int read() throws IOException { public int read() throws IOException {
readSomething = true; readSomething = true;
return in.read(); return super.read();
} }
@Override @Override
public int read(CharBuffer target) throws IOException { public int read(CharBuffer target) throws IOException {
readSomething = true; readSomething = true;
return in.read(target); return super.read(target);
}
@Override
public void mark(int readAheadLimit) throws IOException {
in.mark(readAheadLimit);
}
@Override
public boolean markSupported() {
return in.markSupported();
} }
@Override @Override
public int read(char[] cbuf) throws IOException { public int read(char[] cbuf) throws IOException {
readSomething = true; readSomething = true;
return in.read(cbuf); return super.read(cbuf);
}
@Override
public boolean ready() throws IOException {
return in.ready();
}
@Override
public void reset() throws IOException {
in.reset();
} }
@Override @Override
public long skip(long n) throws IOException { public long skip(long n) throws IOException {
readSomething = true; readSomething = true;
return in.skip(n); return super.skip(n);
} }
} }