package edu.asu.spring.quadriga.profile.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import edu.asu.spring.quadriga.conceptpower.POS;
import edu.asu.spring.quadriga.domain.impl.ConceptpowerReply;
import edu.asu.spring.quadriga.domain.impl.ConceptpowerReply.ConceptEntry;
import edu.asu.spring.quadriga.profile.ISearchResult;
import edu.asu.spring.quadriga.profile.IService;
import edu.asu.spring.quadriga.service.conceptcollection.IConceptCollectionManager;
/**
* this class contains methods which connects quadriga to conceptpower and searches
* the required term in conceptpower
*
* @author rohit
*
*/
@Service
public class ConceptPowerService implements IService {
@Autowired
private IConceptCollectionManager collectionManager;
private final static String SERVICE_ID = "edu.asu.conceptpower";
private final static String SERVICE_NAME = "ConceptPower";
@Override
public String getServiceId() {
return SERVICE_ID;
}
@Override
public String getName() {
return SERVICE_NAME;
}
/**
* searches results in the conceptpower authority service and gives back
* results to quadriga
*
* @param term
* search term user wants to search in service
* @return list of search results
* @author rohit pendbhaje
*
*/
@Override
public List<ISearchResult> search(String term) {
List<ISearchResult> searchResults = new ArrayList<ISearchResult>();
ConceptpowerReply conceptReply = collectionManager.search(term, POS.NOUN);
if(conceptReply!=null)
{
List<ConceptEntry> conceptEntries = conceptReply.getConceptEntry();
for(ConceptEntry ce : conceptEntries)
{
ISearchResult searchResult = new SearchResult();
searchResult.setName(ce.getLemma());
searchResult.setId(ce.getId());
searchResult.setDescription(ce.getDescription());
searchResults.add(searchResult);
}
}
return searchResults;
}
}