package fitnesse.wiki.search; import fitnesse.components.TraversalListener; import fitnesse.wiki.WikiPage; public abstract class WikiPageFinder implements TraversalListener<WikiPage>, PageFinder { protected TraversalListener<? super WikiPage> observer; protected WikiPageFinder(TraversalListener<? super WikiPage> observer) { this.observer = observer; } protected abstract boolean pageMatches(WikiPage page); @Override public void process(WikiPage page) { if (pageMatches(page)) { observer.process(page); } } @Override public void search(WikiPage page) { page.getPageCrawler().traverse(this); } }