package sagan.guides.support; import sagan.Indexer; import sagan.guides.Tutorial; import sagan.search.support.SearchService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class TutorialIndexer implements Indexer<Tutorial> { private TutorialMapper mapper = new TutorialMapper(); private final SearchService searchService; private final Tutorials tutorials; @Autowired public TutorialIndexer(SearchService searchService, Tutorials tutorials) { this.searchService = searchService; this.tutorials = tutorials; } @Override public Iterable<Tutorial> indexableItems() { return tutorials.findAll(); } @Override public void indexItem(Tutorial tutorial) { searchService.saveToIndex(mapper.map(tutorial)); } @Override public String counterName() { return "tutorials"; } @Override public String getId(Tutorial tutorial) { return tutorial.getGuideId(); } }