/** * */ package net.agef.jobexchange.services.lucene; import java.util.Iterator; import java.util.List; import java.util.Map; import net.agef.jobexchange.domain.JobImpl; import net.agef.jobexchange.domain.LanguageSkill; import net.agef.jobexchange.domain.Languages; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.hibernate.search.bridge.FieldBridge; import org.hibernate.search.bridge.LuceneOptions; import org.hibernate.search.bridge.ParameterizedBridge; /** * @author Administrator * */ public class JobConcatClassBridge implements FieldBridge, ParameterizedBridge { private String sepChar; @SuppressWarnings("unchecked") public void setParameterValues(Map parameters) { this.sepChar = (String) parameters.get( "sepChar" ); } public void set(String name, Object value, //the department instance (entity) in this case Document document, //the Lucene document LuceneOptions options){ //Field.Store store, Field.Index index, Float boost) { // H-Search v.3.0 // In this particular class the name of the new field was passed // from the name field of the ClassBridge Annotation. This is not // a requirement. It just works that way in this instance. The // actual name could be supplied by hard coding it below. JobImpl job = (JobImpl) value; String fieldValue1 = job.getJobDescription(); if ( fieldValue1 == null ) { fieldValue1 = ""; } String fieldValue2 = job.getTaskDescription(); if ( fieldValue2 == null ) { fieldValue2 = ""; } String fieldValue3 = job.getOrganisationDescription(); if ( fieldValue3 == null ) { fieldValue3 = ""; } String fieldValue4 = job.getAlternativeProfession(); if ( fieldValue4 == null ) { fieldValue4 = ""; } String fieldValue5 = job.getDesiredProfession(); if ( fieldValue5 == null ) { fieldValue5 = ""; } String fieldValue6 = job.getComputerSkillsComments(); if ( fieldValue6 == null ) { fieldValue6 = ""; } String fieldValue7 = job.getSpecialKnowledge(); if ( fieldValue7 == null ) { fieldValue7 = ""; } String fieldValue8 = job.getFurtherComments(); if ( fieldValue8 == null ) { fieldValue8 = ""; } String fieldValue9 = ""; if(job.getOccupationalField()!=null){ fieldValue9 = job.getOccupationalField().toString(); if ( fieldValue9 == null ) { fieldValue9 = ""; } } String fieldValue10 = ""; if(job.getLanguageSkillsOther()!=null){ List<LanguageSkill> lang = job.getLanguageSkillsOther(); Iterator<LanguageSkill> it = lang.iterator(); while(it.hasNext()){ if(fieldValue10.equals("")){ Languages language = it.next().getName(); if(language != null) fieldValue10 = language.getIsoNameLong(); } else { Languages language = it.next().getName(); if(language != null) fieldValue10 = fieldValue10+" "+language.getIsoNameLong(); } if ( fieldValue10 == null ) { fieldValue10 = ""; } } if ( fieldValue10 == null ) { fieldValue10 = ""; } } String fieldValue11 = ""; if(job.getCountryOfEmployment()!=null){ fieldValue11 = job.getCountryOfEmployment().getShortEnglishName(); if ( fieldValue11 == null ) { fieldValue11 = ""; } } String fieldValue12 = ""; if(job.getCobraJobId()!=null){ fieldValue12 = job.getCobraJobId().toString(); if ( fieldValue12 == null ) { fieldValue12 = ""; } } String fieldValue13 = ""; if(job.getJobOfferId()!=null){ fieldValue13 = job.getJobOfferId().toString(); if ( fieldValue13 == null ) { fieldValue13 = ""; } } String fieldValue = fieldValue1 + sepChar + fieldValue2+ sepChar + fieldValue3 + sepChar + fieldValue4+ sepChar + fieldValue5+ sepChar + fieldValue6+ sepChar + fieldValue7 + sepChar + fieldValue8+ sepChar + fieldValue9+ sepChar + fieldValue10+ sepChar + fieldValue11 + sepChar + fieldValue12+ sepChar + fieldValue13; Field field = new Field( name, fieldValue, options.getStore(), options.getIndex() ); if ( options.getBoost() != null ) field.setBoost( options.getBoost() ); document.add( field ); } }