/*
* 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.apache.lucene.search.Query;
import org.hibernate.search.query.dsl.SimpleQueryStringContext;
import org.hibernate.search.query.dsl.SimpleQueryStringMatchingContext;
/**
* @author Guillaume Smet
*/
class ConnectedSimpleQueryStringContext implements SimpleQueryStringContext {
private final QueryBuildingContext queryContext;
private final QueryCustomizer queryCustomizer;
public ConnectedSimpleQueryStringContext(QueryBuildingContext queryContext) {
this.queryContext = queryContext;
this.queryCustomizer = new QueryCustomizer();
}
@Override
public SimpleQueryStringMatchingContext onField(String field) {
return new ConnectedSimpleQueryStringMatchingContext( field, queryCustomizer, queryContext );
}
@Override
public SimpleQueryStringMatchingContext onFields(String field, String... fields) {
String[] allFields = new String[fields.length + 1];
allFields[0] = field;
System.arraycopy( fields, 0, allFields, 1, fields.length );
return new ConnectedSimpleQueryStringMatchingContext( allFields, queryCustomizer, queryContext );
}
@Override
public ConnectedSimpleQueryStringContext boostedTo(float boost) {
queryCustomizer.boostedTo( boost );
return this;
}
@Override
public ConnectedSimpleQueryStringContext withConstantScore() {
queryCustomizer.withConstantScore();
return this;
}
@Override
public ConnectedSimpleQueryStringContext filteredBy(Query filter) {
queryCustomizer.filteredBy( filter );
return this;
}
}