/* * 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.impl; import java.util.Set; import org.apache.lucene.analysis.Analyzer; import org.hibernate.search.SearchFactory; import org.hibernate.search.indexes.IndexReaderAccessor; import org.hibernate.search.metadata.IndexedTypeDescriptor; import org.hibernate.search.query.dsl.QueryContextBuilder; import org.hibernate.search.spi.SearchIntegrator; import org.hibernate.search.stat.Statistics; /** * Implementation of the public API: a simple delegate to the actual implementor. * * @author Sanne Grinovero (C) 2014 Red Hat Inc. * @since 5.0 */ final class SearchFactoryImpl implements SearchFactory { private final SearchIntegrator searchIntegrator; public SearchFactoryImpl(SearchIntegrator searchIntegrator) { this.searchIntegrator = searchIntegrator; } @Override public void optimize() { searchIntegrator.optimize(); } @Override public void optimize(Class<?> entityType) { searchIntegrator.optimize( entityType ); } @Override public Analyzer getAnalyzer(String name) { return searchIntegrator.getAnalyzer( name ); } @Override public Analyzer getAnalyzer(Class<?> clazz) { return searchIntegrator.getAnalyzer( clazz ); } @Override public QueryContextBuilder buildQueryBuilder() { return searchIntegrator.buildQueryBuilder(); } @Override public Statistics getStatistics() { return searchIntegrator.getStatistics(); } @Override public IndexReaderAccessor getIndexReaderAccessor() { return searchIntegrator.getIndexReaderAccessor(); } @Override public IndexedTypeDescriptor getIndexedTypeDescriptor(Class<?> entityType) { return searchIntegrator.getIndexedTypeDescriptor( entityType ); } @Override public Set<Class<?>> getIndexedTypes() { return searchIntegrator.getIndexedTypes(); } @Override public <T> T unwrap(Class<T> cls) { if ( SearchIntegrator.class.isAssignableFrom( cls ) ) { return (T) searchIntegrator; } else { return searchIntegrator.unwrap( cls ); } } }