1 /******************************************************************************* 2 * Copyright (c) 2005 Gabriel Handford. 3 * All rights reserved. 4 * 5 * Contributors: 6 * Gabriel Handford - 7 *******************************************************************************/ 8 package net.sf.tacos.services; 9 10 import java.util.List; 11 12 13 /** 14 * This class reads the sitemap configuration, and provides access to 15 * basic relationship information, such as page categories, bread crumbs, and 16 * other information, that the application may need to ease navigation. 17 * 18 * @author Gabriel Handford 19 */ 20 public interface SiteMap { 21 22 /** 23 * Get list of named categories. 24 * @return The category listing 25 */ 26 public List getCategories(); 27 28 /** 29 * Get category info for named category. 30 * @param name The category name 31 * @return The category info 32 */ 33 public CategoryInfo getCategoryInfo(String name); 34 35 /** 36 * Get page information. 37 * @param name The page name 38 * @return The page descriptor 39 */ 40 public PageInfo getPageInfo(String name); 41 42 /** 43 * Get the category info for the page name. 44 * @param pageName The page name. 45 * @return The first category associated with this page. 46 */ 47 public CategoryInfo getCategoryFromPage(String pageName); 48 49 /** 50 * Check if page name is in the specified category. 51 * @param pageName Page name 52 * @param category Category 53 * @return True if in the specified category 54 */ 55 public boolean inCategory(String pageName, String category); 56 57 /** 58 * Get the default page description. 59 * @param category Category 60 * @return Category default page description 61 */ 62 public String getDefaultPageDesc(String category); 63 64 /** 65 * Get pages for a specific page names category. 66 * @param pageName Page name 67 * @return Pages 68 */ 69 public List getCategoryPages(String pageName); 70 71 /** 72 * Get the default page. 73 * @param category Category 74 * @return Default page 75 */ 76 public PageInfo getDefaultPage(String category); 77 78 /** 79 * Check if page name is contained in the page element tree. 80 * @param parent The page to start at. 81 * @param pageName The page to find. 82 * @return True if the parent contains the page in its tree. 83 */ 84 public boolean contains(String parent, String pageName); 85 86 /** 87 * Get bread crumbs. 88 * @param pageName The page name. 89 * @return The bread crumbs (page name list). 90 */ 91 public List getBreadCrumbs(String pageName); 92 }