package org.nextprot.api.tasks.solr.indexer.entry.impl; import java.util.Arrays; import java.util.Collection; import org.nextprot.api.core.domain.Entry; import org.nextprot.api.core.domain.EntryProperties; import org.nextprot.api.solr.index.EntryIndex.Fields; import org.nextprot.api.tasks.solr.indexer.entry.EntryFieldBuilder; import org.nextprot.api.tasks.solr.indexer.entry.FieldBuilder; @EntryFieldBuilder public class FilterAndPropertiesFieldsBuilder extends FieldBuilder{ @Override protected void init(Entry entry){ // Filters and entry properties EntryProperties props = entry.getProperties(); addField(Fields.ISOFORM_NUM, props.getIsoformCount()); int cnt; cnt = props.getPtmCount(); if(cnt > 0) { addField(Fields.PTM_NUM, cnt); } cnt = props.getVarCount(); if(cnt > 0) { addField(Fields.VAR_NUM, cnt); } String filters = ""; if(props.getFilterstructure()) filters += "filterstructure "; if(props.getFilterdisease()) filters += "filterdisease "; if(props.getFilterexpressionprofile()) filters += "filterexpressionprofile "; if(props.getFiltermutagenesis()) filters += "filtermutagenesis "; if(props.getFilterproteomics()) filters += "filterproteomics "; if(filters.length() > 0) { addField(Fields.FILTERS, filters.trim()); } addField(Fields.AA_LENGTH, props.getMaxSeqLen()); // max length among all isoforms } @Override public Collection<Fields> getSupportedFields() { return Arrays.asList(Fields.ISOFORM_NUM, Fields.PTM_NUM, Fields.VAR_NUM, Fields.FILTERS, Fields.AA_LENGTH); } }