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