LUCENE-3397: Cleaned up remaining test TSs and PatterAnalyzer

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1161986 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Christopher John Male 2011-08-26 04:16:19 +00:00
parent a555a34924
commit 0f2d7ad556
4 changed files with 52 additions and 12 deletions

View File

@ -311,6 +311,12 @@ public class IndexTimeSynonymTest extends AbstractTestCase {
tokens[p++].copyTo(reusableToken); tokens[p++].copyTo(reusableToken);
return true; return true;
} }
@Override
public void reset() throws IOException {
super.reset();
this.p = 0;
}
}; };
return ts; return ts;
} }

View File

@ -447,6 +447,12 @@ public class TestIndexWriterExceptions extends LuceneTestCase {
} }
return input.incrementToken(); return input.incrementToken();
} }
@Override
public void reset() throws IOException {
super.reset();
this.count = 0;
}
}; };
} }

View File

@ -492,7 +492,6 @@ public class TestPayloadSpans extends LuceneTestCase {
final class PayloadFilter extends TokenFilter { final class PayloadFilter extends TokenFilter {
String fieldName; String fieldName;
int numSeen = 0;
Set<String> entities = new HashSet<String>(); Set<String> entities = new HashSet<String>();
Set<String> nopayload = new HashSet<String>(); Set<String> nopayload = new HashSet<String>();
int pos; int pos;
@ -530,6 +529,12 @@ public class TestPayloadSpans extends LuceneTestCase {
} }
return false; return false;
} }
@Override
public void reset() throws IOException {
super.reset();
this.pos = 0;
}
} }
public final class TestPayloadAnalyzer extends Analyzer { public final class TestPayloadAnalyzer extends Analyzer {

View File

@ -28,6 +28,7 @@ import java.util.regex.Pattern;
import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.core.StopAnalyzer; import org.apache.lucene.analysis.core.StopAnalyzer;
import org.apache.lucene.analysis.core.StopFilter; import org.apache.lucene.analysis.core.StopFilter;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
@ -220,10 +221,6 @@ public final class PatternAnalyzer extends Analyzer {
*/ */
@Override @Override
public TokenStream tokenStream(String fieldName, Reader reader) { public TokenStream tokenStream(String fieldName, Reader reader) {
if (reader instanceof FastStringReader) { // fast path
return tokenStream(fieldName, ((FastStringReader)reader).getString());
}
try { try {
String text = toString(reader); String text = toString(reader);
return tokenStream(fieldName, text); return tokenStream(fieldName, text);
@ -290,6 +287,10 @@ public final class PatternAnalyzer extends Analyzer {
* @throws IOException if an I/O error occurs while reading the stream * @throws IOException if an I/O error occurs while reading the stream
*/ */
private static String toString(Reader input) throws IOException { private static String toString(Reader input) throws IOException {
if (input instanceof FastStringReader) { // fast path
return ((FastStringReader) input).getString();
}
try { try {
int len = 256; int len = 256;
char[] buffer = new char[len]; char[] buffer = new char[len];
@ -324,9 +325,9 @@ public final class PatternAnalyzer extends Analyzer {
* The work horse; performance isn't fantastic, but it's not nearly as bad * The work horse; performance isn't fantastic, but it's not nearly as bad
* as one might think - kudos to the Sun regex developers. * as one might think - kudos to the Sun regex developers.
*/ */
private static final class PatternTokenizer extends TokenStream { private static final class PatternTokenizer extends Tokenizer {
private final String str; private String str;
private final boolean toLowerCase; private final boolean toLowerCase;
private Matcher matcher; private Matcher matcher;
private int pos = 0; private int pos = 0;
@ -372,8 +373,20 @@ public final class PatternAnalyzer extends Analyzer {
// set final offset // set final offset
final int finalOffset = str.length(); final int finalOffset = str.length();
this.offsetAtt.setOffset(finalOffset, finalOffset); this.offsetAtt.setOffset(finalOffset, finalOffset);
} }
}
@Override
public void reset(Reader input) throws IOException {
super.reset(input);
this.str = PatternAnalyzer.toString(input);
}
@Override
public void reset() throws IOException {
super.reset();
this.pos = 0;
}
}
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
@ -383,9 +396,9 @@ public final class PatternAnalyzer extends Analyzer {
* Special-case class for best performance in common cases; this class is * Special-case class for best performance in common cases; this class is
* otherwise unnecessary. * otherwise unnecessary.
*/ */
private static final class FastStringTokenizer extends TokenStream { private static final class FastStringTokenizer extends Tokenizer {
private final String str; private String str;
private int pos; private int pos;
private final boolean isLetter; private final boolean isLetter;
private final boolean toLowerCase; private final boolean toLowerCase;
@ -464,7 +477,17 @@ public final class PatternAnalyzer extends Analyzer {
private boolean isStopWord(String text) { private boolean isStopWord(String text) {
return stopWords != null && stopWords.contains(text); return stopWords != null && stopWords.contains(text);
} }
@Override
public void reset(Reader input) throws IOException {
this.str = PatternAnalyzer.toString(input);
}
@Override
public void reset() throws IOException {
super.reset();
this.pos = 0;
}
} }