001/** 002 * 003 */ 004package org.biopax.paxtools.util; 005 006import org.apache.lucene.document.Document; 007import org.biopax.paxtools.model.level3.Provenance; 008import org.hibernate.search.bridge.FieldBridge; 009import org.hibernate.search.bridge.LuceneOptions; 010 011import java.util.Set; 012 013/** 014 * 015 * A FieldBridge implementation 016 * for including dataSource (Provenance) names and URIs 017 * to the BioPAX element's Lucene index. 018 * 019 * @author rodche 020 * @deprecated Hibernate ORM/Search will be removed in v5 021 */ 022public final class DataSourceFieldBridge implements FieldBridge { 023 024 @Override 025 public void set(String searchFieldName, Object value, Document document, LuceneOptions luceneOptions) 026 { 027 if (value instanceof Set) { 028 for (Provenance p : (Set<Provenance>) value) { 029 if(p == null) continue; 030 // do not do .toLowerCase() for the URI! 031 FieldBridgeUtils.addFieldToDocumentAsIs(luceneOptions, searchFieldName, p.getRDFId(), document); 032 // index names as well 033 for (String s : p.getName()) 034 FieldBridgeUtils.addFieldToDocument(luceneOptions, searchFieldName, s, document); 035 } 036 } else { 037 throw new AssertionError("bug!"); 038 } 039 } 040}