package org.nextprot.api.tasks.solr.indexer.entry.impl;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import org.nextprot.api.core.domain.DbXref;
import org.nextprot.api.core.domain.Entry;
import org.nextprot.api.core.domain.annotation.Annotation;
import org.nextprot.api.core.domain.annotation.AnnotationEvidence;
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 PeptideFieldBuilder extends FieldBuilder{
@Override
protected void init(Entry entry){
for (Annotation currannot : entry.getAnnotations()) {
String category = currannot.getCategory();
if (category.contains("peptide mapping")){
List<AnnotationEvidence> evList = currannot.getEvidences();
for (AnnotationEvidence currEv : evList) {
String db = currEv.getResourceDb();
if(!db.equals("neXtProtSubmission")) {
if(db.equals("PubMed")) addField(Fields.PEPTIDE, db + ":" + currEv.getResourceAccession());
else addField(Fields.PEPTIDE, db + ":" + currEv.getResourceAccession() + ", " + currEv.getResourceAccession());
}
}
}
}
}
@Override
public Collection<Fields> getSupportedFields() {
return Arrays.asList(Fields.PEPTIDE);
}
}