/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.analyzer.spi; /** * Reference to a scoped analyzer implementation. * * @author Davide D'Alto * * @hsearch.experimental This type is under active development as part of the Elasticsearch integration. You * should be prepared for incompatible changes in future releases. */ public interface ScopedAnalyzerReference extends AnalyzerReference { @Override ScopedAnalyzer getAnalyzer(); /** * @return A builder for copying the referenced analyzer, altering some scopes as necessary. */ CopyBuilder startCopy(); /** * Interface for building a reference to a scope aware analyzer when bootstrapping. * * @author Guillaume Smet * @author Yoann Rodiere * @hsearch.experimental This type is under active development as part of the Elasticsearch integration. You * should be prepared for incompatible changes in future releases. */ public interface Builder { AnalyzerReference getGlobalAnalyzerReference(); void setGlobalAnalyzerReference(AnalyzerReference globalAnalyzerReference); void addAnalyzerReference(String scope, AnalyzerReference analyzerReference); ScopedAnalyzerReference build(); } /** * Interface for building a copy of a reference to a scope aware analyzer at runtime. * <p> * This is mainly used to override analyzers for some scopes. * * @author Guillaume Smet * @author Yoann Rodiere * @hsearch.experimental This type is under active development as part of the Elasticsearch integration. You * should be prepared for incompatible changes in future releases. */ public interface CopyBuilder { void addAnalyzerReference(String scope, AnalyzerReference analyzerReference); ScopedAnalyzerReference build(); } }