package fr.openwide.core.jpa.search.bridge; import org.apache.lucene.document.Document; import org.hibernate.search.bridge.FieldBridge; import org.hibernate.search.bridge.LuceneOptions; import org.hibernate.search.bridge.StringBridge; import fr.openwide.core.jpa.hibernate.usertype.AbstractMaterializedPrimitiveValue; public class MaterializedPrimitiveValueFieldBridge implements FieldBridge, StringBridge { @Override public String objectToString(Object object) { if (object == null) { return null; } if (!(object instanceof AbstractMaterializedPrimitiveValue)) { throw new IllegalArgumentException("This FieldBridge only supports AbstractMaterializedPrimitiveValue<?, ?> properties."); } AbstractMaterializedPrimitiveValue<?, ?> materializedStringValue = (AbstractMaterializedPrimitiveValue<?, ?>) object; Object value = materializedStringValue.getValue(); return value != null ? value.toString() : null; } @Override public void set(String name, Object value, Document document, LuceneOptions luceneOptions) { luceneOptions.addFieldToDocument(name, objectToString(value), document); } }