Package org.rssowl.core.internal.persist.search

Source Code of org.rssowl.core.internal.persist.search.LowercaseDelimiterAnalyzer

/*   **********************************************************************  **
**   Copyright notice                                                       **
**                                                                          **
**   (c) 2005-2006 RSSOwl Development Team                                  **
**   http://www.rssowl.org/                                                 **
**                                                                          **
**   All rights reserved                                                    **
**                                                                          **
**   This program and the accompanying materials are made available under   **
**   the terms of the Eclipse Public License v1.0 which accompanies this    **
**   distribution, and is available at:                                     **
**   http://www.rssowl.org/legal/epl-v10.html                               **
**                                                                          **
**   A copy is found in the file epl-v10.html and important notices to the  **
**   license from the team is found in the textfile LICENSE.txt distributed **
**   in this package.                                                       **
**                                                                          **
**   This copyright notice MUST APPEAR in all copies of the file!           **
**                                                                          **
**   Contributors:                                                          **
**     RSSOwl Development Team - initial API and implementation             **
**                                                                          **
**  **********************************************************************  */

package org.rssowl.core.internal.persist.search;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.CharTokenizer;
import org.apache.lucene.analysis.LowerCaseFilter;
import org.apache.lucene.analysis.TokenStream;

import java.io.Reader;

/**
* The <code>LowercaseDelimiterAnalyzer</code> will tokenize the input by the
* given delimiter char. In addition, all <code>Token</code>s get lowercased.
*
* @author bpasero
*/
public class LowercaseDelimiterAnalyzer extends Analyzer {
  private final char fDelim;

  /**
   * The <code>LowercaseDelimiterAnalyzer</code> will tokenize the input by
   * the given delimiter char. In addition, all <code>Token</code>s get
   * lowercased.
   *
   * @param delim the char that is used to separate tokens.
   */
  public LowercaseDelimiterAnalyzer(char delim) {
    fDelim = delim;
  }

  /*
   * @see org.apache.lucene.analysis.KeywordAnalyzer#tokenStream(java.lang.String,
   * java.io.Reader)
   */
  @Override
  public TokenStream tokenStream(String fieldName, Reader reader) {

    /* Split at delim Char */
    TokenStream result = new CharTokenizer(reader) {

      @Override
      protected boolean isTokenChar(char c) {
        return c != fDelim;
      }
    };

    /* Lowercase */
    result = new LowerCaseFilter(result);

    return result;
  }
}
TOP

Related Classes of org.rssowl.core.internal.persist.search.LowercaseDelimiterAnalyzer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.