// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the CPL Common Public License version 1.0.
package fitnesse.wiki;
import fitnesse.components.TraversalListener;
//TODO after extracting the WikiPageModel... rethink this class. Lots of these methods might be able to go back into WikiPAge.
public interface PageCrawler {
WikiPage getPage(WikiPage context, WikiPagePath path);
void setDeadEndStrategy(PageCrawlerDeadEndStrategy strategy);
boolean pageExists(WikiPage context, WikiPagePath path);
WikiPagePath getFullPathOfChild(WikiPage parent, WikiPagePath childPath);
WikiPagePath getFullPath(WikiPage page);
WikiPage addPage(WikiPage context, WikiPagePath path, String content);
WikiPage addPage(WikiPage context, WikiPagePath path);
String getRelativeName(WikiPage base, WikiPage page);
boolean isRoot(WikiPage page);
WikiPage getRoot(WikiPage page);
void traverse(WikiPage root, TraversalListener pageCrawlerTest);
WikiPage getSiblingPage(WikiPage page, WikiPagePath pathRelativeToSibling);
WikiPage findAncestorWithName(WikiPage page, String name);
}