// 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 java.util.Collection;
import java.util.List;

/**
 * A wiki page. Wiki pages can have children, are versioned and are transactional.
 */
public interface WikiPage extends Comparable<WikiPage> {

  /**
   * @return the parent of this page. If the page is the root page, returns itself.
   */
  WikiPage getParent();

  /**
   * @return True if this page is the wiki root.
   */
  boolean isRoot();

  /**
   * Create a child page with a given name. Data should still be committed (see {@link #commit(PageData)})
   * for the page to be persisted.
   *
   * @param name new page name
   * @return a new wiki page.
   */
  WikiPage addChildPage(String name);

  boolean hasChildPage(String name);

  WikiPage getChildPage(String name);

  /**
   * @param name change page's name
   * @Deprecated Use WikiPage.remove() instead
   */
  @Deprecated
  void removeChildPage(String name);

  /**
   * Remove this page.
   */
  void remove();

  /**
   * Get child pages for this wiki page
   *
   * @return children, an empty list if there are none.
   */
  List<WikiPage> getChildren();

  String getName();

  PageData getData();

  /**
   * Get a list/set of version info
   *
   * @return a collection, never null.
   */
  Collection<VersionInfo> getVersions();

  WikiPage getVersion(String versionName);

  String getHtml();

  /**
   * Commit new content
   *
   * @param data PageData to commit
   * @return version information about this new data version, may be null.
   */
  VersionInfo commit(PageData data);

  PageCrawler getPageCrawler();

  String getVariable(String name);
}




@@ -919,45 +919,8 @@
   * 
-@param name change page's name%0A   * @
 Depr
@@ -925,16 +925,17 @@
 precated
+.
  Use Wik
@@ -956,16 +956,58 @@
  instead
+.%0A   *%0A   * @param name change page's name
 %0A   */%0A 

fix javadoc