/* * 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.query.dsl.impl; import org.hibernate.search.analyzer.spi.ScopedAnalyzerReference; import org.hibernate.search.engine.integration.impl.ExtendedSearchIntegrator; import org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity; import org.hibernate.search.engine.spi.EntityIndexBinding; import org.hibernate.search.exception.AssertionFailure; /** * Keep the query builder contextual information * * @author Emmanuel Bernard */ public class QueryBuildingContext { private final ExtendedSearchIntegrator factory; private final DocumentBuilderIndexedEntity documentBuilder; private final ScopedAnalyzerReference originalAnalyzerReference; private final ScopedAnalyzerReference queryAnalyzerReference; private final Class<?> entityType; public QueryBuildingContext(ExtendedSearchIntegrator factory, ScopedAnalyzerReference originalAnalyzerReference, ScopedAnalyzerReference queryAnalyzerReference, Class<?> entityType) { this.factory = factory; this.originalAnalyzerReference = originalAnalyzerReference; this.queryAnalyzerReference = queryAnalyzerReference; this.entityType = entityType; EntityIndexBinding indexBinding = factory.getIndexBinding( entityType ); if ( indexBinding == null ) { throw new AssertionFailure( "Class is not indexed: " + entityType ); } documentBuilder = indexBinding.getDocumentBuilder(); } public ExtendedSearchIntegrator getExtendedSearchIntegrator() { return factory; } public DocumentBuilderIndexedEntity getDocumentBuilder() { return documentBuilder; } public ScopedAnalyzerReference getOriginalAnalyzerReference() { return originalAnalyzerReference; } public ScopedAnalyzerReference getQueryAnalyzerReference() { return queryAnalyzerReference; } public Class<?> getEntityType() { return entityType; } }