package org.sakaiproject.citation.api; public interface SearchDatabaseHierarchy { public static final String ROOT_CATEGORY_NAME = "root"; public static final String ROOT_CATEGORY_ID = "!root"; /** * Returns an Asset representing the database with the given databaseId. * This method is in place to provide individual database browse funcationality. * * @param databaseId String representing the id of the database requested * @return an Asset if the database exists in this hierarchy, null otherwise. * public org.osid.repository.Asset getDatabase( String databaseId ); */ /** * Returns the category within this hierarchy with the given category id * * @param categoryId id of category to check * @return SearchCategory within this hierarchy with given category id; null * if the category id is not found in this hierarchy */ public SearchCategory getCategory( String categoryId ); /** * Returns the number of hierarchical levels in this hierarchy. * * @return number of hierarchical levels in this hierarchy. One less than the number returned * provides the number of categorization levels - examples: * <ul> * <li>return value of 1 indicates there are just databases (no categorization)</li> * <li>return value of 5 indicates there are 4 categorization levels</li> * </ul> */ public int getNumLevels(); /** * Returns the maximum number of searchable databases within this hierarchy. * This number defaults to 8 for now. * * @return max number of searchable databases within this hierarchy */ public int getNumMaxSearchableDb(); /** * Returns a list containing all categories in this hierarchy. * This list can be used to iterate through the entire hierarchy. * * @return list containing the SearchCategory objects in this hierarchy. */ public java.util.List getCategoryListing(); /** * Returns the default category in this hierarchy. A default category will contain * at least one database and no sub-categories. * * @return Default category in this hierarchy, or null if it does not exist. */ public SearchCategory getDefaultCategory(); /** * Determines whether or not the given database is within this hierarchy. * * @param databaseId database id to check * @return true if the database exists in this hierarchy, * false if it does not */ public boolean isSearchableDatabase( String databaseId ); /** * Get the Repository associated with this hierarchy * * @return Repository associated with this hierarchy */ public org.osid.repository.Repository getRepository(); /** * Determines whether or not this hierarchy is properly configured. * This hierarchy could not be properly configured if the config xml files * are not found or there is an error in parsing them. * * @return true if hierarchy is properly configured, false otherwise. */ public boolean isConfigured(); }