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     * This class describes a tapestry page.
014     *
015     * @author Gabriel Handford
016     */
017    public interface PageInfo {
018    
019        /**
020         * Get the page description.
021         * @return The page description.
022         */
023        public String getDesc();
024    
025        /**
026         * Get the unique page name.
027         * @return Page name
028         */
029        public String getName();
030    
031        /**
032         * Get the permission associated with page, if any.
033         * @return Permission
034         */
035        public String getPermission();
036    
037        /**
038         * Get the parent to this page.
039         * @return parent The parent.
040         */
041        public PageInfo getParent();
042    
043        /**
044         * Set the parent.
045         * @param parent The parent.
046         */
047        public void setParent(PageInfo parent);
048    
049        /**
050         * Adds the specified child node.
051         * @param child Child page
052         */
053        public void addChild(PageInfo child);
054        
055        /**
056         * Get the children.
057         * @return Children
058         */
059        public List getChildrenNames();
060    
061        /**
062         * Check if page should be included in navigation.
063         * @return Whether page should be included in navigation.
064         */
065        public boolean isNavigable();
066    }