Index: lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java =================================================================== --- lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java (revision 1508466) +++ lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java (working copy) @@ -61,6 +61,21 @@ */ protected abstract TokenStreamComponents wrapComponents(String fieldName, TokenStreamComponents components); + /** + * Wraps / alters the given Reader. Through this method AnalyzerWrappers can + * implement {@link #initReader(String, Reader)}. This method returns the + * given reader by default. + * + * @param fieldName + * name of the field which is to be analyzed + * @param reader + * the reader to wrap + * @return the wrapped reader + */ + protected Reader wrapReader(String fieldName, Reader reader) { + return reader; + } + @Override protected final TokenStreamComponents createComponents(String fieldName, Reader aReader) { return wrapComponents(fieldName, getWrappedAnalyzer(fieldName).createComponents(fieldName, aReader)); @@ -78,6 +93,6 @@ @Override public final Reader initReader(String fieldName, Reader reader) { - return getWrappedAnalyzer(fieldName).initReader(fieldName, reader); + return getWrappedAnalyzer(fieldName).initReader(fieldName, wrapReader(fieldName, reader)); } }