org.hibernate.search.query.dsl.impl.FieldContext Maven / Gradle / Ivy
/*
* 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 .
*/
package org.hibernate.search.query.dsl.impl;
import org.hibernate.search.bridge.FieldBridge;
import org.hibernate.search.bridge.spi.ConversionContext;
import org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity;
/**
* @author Emmanuel Bernard
*/
public class FieldContext {
private final String field;
private final boolean isIdField;
private boolean ignoreAnalyzer;
private final QueryCustomizer fieldCustomizer;
private boolean ignoreFieldBridge;
private FieldBridge fieldBridge;
public FieldContext(String field, QueryBuildingContext queryContext) {
this.field = field;
this.fieldCustomizer = new QueryCustomizer();
isIdField = queryContext.getDocumentBuilder().getIdFieldName().equals( field );
}
public String getField() {
return field;
}
/**
* Whether to analyze the given field value or not.
* @return {@code true} if the field must be analyzed
*/
public boolean applyAnalyzer() {
return !ignoreAnalyzer && !isIdField;
}
public void setIgnoreAnalyzer(boolean ignoreAnalyzer) {
this.ignoreAnalyzer = ignoreAnalyzer;
}
public QueryCustomizer getFieldCustomizer() {
return fieldCustomizer;
}
public boolean isIgnoreFieldBridge() {
return ignoreFieldBridge;
}
public void setIgnoreFieldBridge(boolean ignoreFieldBridge) {
this.ignoreFieldBridge = ignoreFieldBridge;
}
public void setFieldBridge(FieldBridge fieldBridge) {
this.fieldBridge = fieldBridge;
}
public FieldBridge getFieldBridge() {
return fieldBridge;
}
public String objectToString(DocumentBuilderIndexedEntity documentBuilder, Object value, ConversionContext conversionContext) {
if ( isIgnoreFieldBridge() ) {
return value == null ? null : value.toString();
}
else if ( fieldBridge != null ) {
return documentBuilder.objectToString( field, fieldBridge, value, conversionContext );
}
else {
return documentBuilder.objectToString( field, value, conversionContext );
}
}
@Override
public String toString() {
return "FieldContext [field=" + field + ", fieldBridge=" + fieldBridge + ", fieldCustomizer=" + fieldCustomizer + ", ignoreAnalyzer=" + ignoreAnalyzer
+ ", ignoreFieldBridge=" + ignoreFieldBridge + "]";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy