0N/A/*
0N/A * CDDL HEADER START
0N/A *
0N/A * The contents of this file are subject to the terms of the
407N/A * Common Development and Distribution License (the "License").
0N/A * You may not use this file except in compliance with the License.
0N/A *
0N/A * See LICENSE.txt included in this distribution for the specific
0N/A * language governing permissions and limitations under the License.
0N/A *
0N/A * When distributing Covered Code, include this CDDL HEADER in each
0N/A * file and include the License file at LICENSE.txt.
0N/A * If applicable, add the following below this CDDL HEADER, with the
0N/A * fields enclosed by brackets "[]" replaced with your own identifying
0N/A * information: Portions Copyright [yyyy] [name of copyright owner]
0N/A *
0N/A * CDDL HEADER END
0N/A */
0N/A
0N/A/*
1380N/A * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
0N/A */
0N/Apackage org.opensolaris.opengrok.analysis;
0N/A
392N/Aimport java.io.Reader;
392N/Aimport org.apache.lucene.analysis.Analyzer;
392N/Aimport org.apache.lucene.analysis.TokenStream;
0N/Aimport org.opensolaris.opengrok.analysis.plain.PlainFullTokenizer;
0N/Aimport org.opensolaris.opengrok.analysis.plain.PlainSymbolTokenizer;
0N/A
0N/Apublic class CompatibleAnalyser extends Analyzer {
0N/A PathAnalyzer pather;
0N/A HistoryAnalyzer historer;
1190N/A
0N/A public CompatibleAnalyser() {
0N/A historer = new HistoryAnalyzer();
0N/A pather = new PathAnalyzer();
0N/A }
1190N/A
1380N/A @Override
1380N/A public final TokenStream tokenStream(String fieldName, Reader reader) {
456N/A if ("full".equals(fieldName)) {
0N/A return new PlainFullTokenizer(reader);
456N/A } else if ("refs".equals(fieldName)) {
0N/A return new PlainSymbolTokenizer(reader);
456N/A } else if ("defs".equals(fieldName)) {
0N/A return new PlainSymbolTokenizer(reader);
456N/A } else if ("path".equals(fieldName) || "project".equals(fieldName)) {
0N/A return pather.tokenStream(fieldName, reader);
456N/A } else if ("hist".equals(fieldName)) {
0N/A return historer.tokenStream(fieldName, reader);
1190N/A }
0N/A return new PlainFullTokenizer(reader);
0N/A }
1380N/A
1380N/A @Override
1380N/A public final TokenStream reusableTokenStream(String fieldName, Reader reader) {
1380N/A //TODO needs refactoring to get more speed and less ram usage for indexer
1380N/A return this.tokenStream(fieldName, reader);
1380N/A }
0N/A}