Save This Page
Home » lucene-3.0.1-src » org.apache » lucene » analysis » [javadoc | source]
    1   /**
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *     http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    * Unless required by applicable law or agreed to in writing, software
   12    * distributed under the License is distributed on an "AS IS" BASIS,
   13    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    * See the License for the specific language governing permissions and
   15    * limitations under the License.
   16    */
   17   
   18   package org.apache.lucene.analysis;
   19   
   20   import java.io.IOException;
   21   
   22   /**
   23    * Subclasses of CharFilter can be chained to filter CharStream.
   24    * They can be used as {@link java.io.Reader} with additional offset
   25    * correction. {@link Tokenizer}s will automatically use {@link #correctOffset}
   26    * if a CharFilter/CharStream subclass is used.
   27    *
   28    * @version $Id$
   29    *
   30    */
   31   public abstract class CharFilter extends CharStream {
   32   
   33     protected CharStream input;
   34   
   35     protected CharFilter(CharStream in) {
   36       input = in;
   37     }
   38   
   39     /**
   40      * Subclass may want to override to correct the current offset.
   41      *
   42      * @param currentOff current offset
   43      * @return corrected offset
   44      */
   45     protected int correct(int currentOff) {
   46       return currentOff;
   47     }
   48   
   49     /**
   50      * Chains the corrected offset through the input
   51      * CharFilter.
   52      */
   53     @Override
   54     public final int correctOffset(int currentOff) {
   55       return input.correctOffset(correct(currentOff));
   56     }
   57   
   58     @Override
   59     public void close() throws IOException {
   60       input.close();
   61     }
   62   
   63     @Override
   64     public int read(char[] cbuf, int off, int len) throws IOException {
   65       return input.read(cbuf, off, len);
   66     }
   67   
   68     @Override
   69     public boolean markSupported(){
   70       return input.markSupported();
   71     }
   72   
   73     @Override
   74     public void mark( int readAheadLimit ) throws IOException {
   75       input.mark(readAheadLimit);
   76     }
   77   
   78     @Override
   79     public void reset() throws IOException {
   80       input.reset();
   81     }
   82   }

Save This Page
Home » lucene-3.0.1-src » org.apache » lucene » analysis » [javadoc | source]