package org.nextprot.api.core.service.impl;
import org.nextprot.api.commons.service.MasterIdentifierService;
import org.nextprot.api.core.domain.Entry;
import org.nextprot.api.core.service.EntryBuilderService;
import org.nextprot.api.core.service.EntryService;
import org.nextprot.api.core.service.fluent.EntryConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
class EntryServiceImpl implements EntryService {
@Autowired EntryBuilderService entryBuilderService;
@Autowired MasterIdentifierService masterIdentifierService;
@Override
public Entry findEntry(String entryName) {
return entryBuilderService.build(EntryConfig.newConfig(entryName).withEverything());
}
@Override
public List<Entry> findEntries(List<String> entryNames) {
List<Entry> entries = new ArrayList<Entry>();
for(String entryName : entryNames) entries.add(findEntry(entryName));
return entries;
}
@Override
public List<Entry> findEntriesByChromosome(String chromosome) {
List<String> uniqueNames = this.masterIdentifierService.findUniqueNamesOfChromosome(chromosome);
List<Entry> entries = new ArrayList<Entry>();
for(String uniqueName : uniqueNames)
entries.add(findEntry(uniqueName));
return entries;
}
@Override
public List<String> findEntryNamesByChromosome(String chromosome) {
return this.masterIdentifierService.findUniqueNamesOfChromosome(chromosome);
}
}