package fitnesse.components; import fitnesse.wiki.WikiPage; import java.util.ArrayList; import java.util.List; public abstract class WikiPageFinder implements TraversalListener<WikiPage>, PageFinder { protected List<WikiPage> hits; protected TraversalListener observer; protected WikiPageFinder(TraversalListener observer) { this.observer = observer; } protected abstract boolean pageMatches(WikiPage page); public void process(WikiPage page) { if (pageMatches(page)) { observer.process(page); } } public List<WikiPage> search(WikiPage page) { hits = new ArrayList<WikiPage>(); page.getPageCrawler().traverse(page, this); return hits; } }