001 /*******************************************************************************
002 * Copyright (c) 2005 Gabriel Handford.
003 * All rights reserved.
004 *
005 * Contributors:
006 * Gabriel Handford -
007 *******************************************************************************/
008 package net.sf.tacos.services;
009
010 import java.util.List;
011
012
013 /**
014 * This class reads the sitemap configuration, and provides access to
015 * basic relationship information, such as page categories, bread crumbs, and
016 * other information, that the application may need to ease navigation.
017 *
018 * @author Gabriel Handford
019 */
020 public interface SiteMap {
021
022 /**
023 * Get list of named categories.
024 * @return The category listing
025 */
026 public List getCategories();
027
028 /**
029 * Get category info for named category.
030 * @param name The category name
031 * @return The category info
032 */
033 public CategoryInfo getCategoryInfo(String name);
034
035 /**
036 * Get page information.
037 * @param name The page name
038 * @return The page descriptor
039 */
040 public PageInfo getPageInfo(String name);
041
042 /**
043 * Get the category info for the page name.
044 * @param pageName The page name.
045 * @return The first category associated with this page.
046 */
047 public CategoryInfo getCategoryFromPage(String pageName);
048
049 /**
050 * Check if page name is in the specified category.
051 * @param pageName Page name
052 * @param category Category
053 * @return True if in the specified category
054 */
055 public boolean inCategory(String pageName, String category);
056
057 /**
058 * Get the default page description.
059 * @param category Category
060 * @return Category default page description
061 */
062 public String getDefaultPageDesc(String category);
063
064 /**
065 * Get pages for a specific page names category.
066 * @param pageName Page name
067 * @return Pages
068 */
069 public List getCategoryPages(String pageName);
070
071 /**
072 * Get the default page.
073 * @param category Category
074 * @return Default page
075 */
076 public PageInfo getDefaultPage(String category);
077
078 /**
079 * Check if page name is contained in the page element tree.
080 * @param parent The page to start at.
081 * @param pageName The page to find.
082 * @return True if the parent contains the page in its tree.
083 */
084 public boolean contains(String parent, String pageName);
085
086 /**
087 * Get bread crumbs.
088 * @param pageName The page name.
089 * @return The bread crumbs (page name list).
090 */
091 public List getBreadCrumbs(String pageName);
092 }