/**********************************************************************************
* $URL: https://source.sakaiproject.org/svn/help/trunk/help-api/src/java/org/sakaiproject/api/app/help/HelpManager.java $
* $Id: HelpManager.java 106357 2012-03-28 23:18:54Z matthew.buckett@oucs.ox.ac.uk $
***********************************************************************************
*
* Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008 The Sakai Foundation
*
* Licensed under the Educational Community License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.opensource.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**********************************************************************************/
package org.sakaiproject.api.app.help;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.sakaiproject.component.api.ServerConfigurationService;
/**
* Help Manager for the Sakai Help Tool.
* @version $Id: HelpManager.java 106357 2012-03-28 23:18:54Z matthew.buckett@oucs.ox.ac.uk $
*/
public interface HelpManager
{
public static final String TOOLCONFIG_HELP_COLLECTIONS = "help.collections";
public static final String HELP_DOC_REGEXP = "^[A-Za-z0-9._-]+$";
/**
* Synchronize initialization of the manager.
*/
public void initialize();
/**
* reInitialization of the help tool.
*/
public void reInitialize();
/**
* Create Category
* @return Category
*/
public Category createCategory();
/**
* Store Category
* @param category
*/
public void storeCategory(Category category);
/**
* find all contexts associated with mappedView
* @param mappedView
* @return - list of contexts (String)
*/
public List<String> getContexts(String mappedView);
/**
* returns a list of all active contexts. Active contexts
* are created when the user navigates around the site.
* @param session
* @return
*/
public List getActiveContexts(Map session);
/**
* adds a context to the active context list
* @param session
* @param mappedView
*/
public void addContexts(Map session, String mappedView);
/**
* get Resources for a context
* @param context
* @return set of resources associated with the supplied context
*/
public Set<Resource> getResources(Long context);
/**
* get a resource by id
* @param id
* @return
*/
public Resource getResource(Long id);
/**
* create a resource
* @return Resource
*/
public Resource createResource();
/**
* persist a resource
* @param resource
*/
public void storeResource(Resource resource);
/**
* delete a resource by id
* @param resourceId
*/
public void deleteResource(Long resourceId);
/**
* get source
* @param id
* @return Source
*/
public Source getSource(Long id);
/**
* store source
* @param source
*/
public void storeSource(Source source);
/**
* delete source by id
* @param sourceId
*/
public void deleteSource(Long sourceId);
/**
* get context by id
* @param id
* @return Context
*/
public Context getContext(Long id);
/**
* store context
* @param context
*/
public void storeContext(Context context);
/**
* delete context by id
* @param contextId
*/
public void deleteContext(Long contextId);
/**
*
* @param session
* @return map of resources keyed by active contexts
*/
public Map<String, Set<Resource>> getResourcesForActiveContexts(Map session);
/**
*
* @param query
* @return set of resources found by searching with the supplied query.
* @throws RuntimeException - if query can't be parsed
*/
public Set<Resource> searchResources(String query) throws RuntimeException;
/**
* get table of contents of manager
* @return TableOfContents
*/
public TableOfContents getTableOfContents();
/**
* set table of contents
* @param toc
*/
public void setTableOfContents(TableOfContents toc);
/**
* searches the glossary for the keyword.
* Returns a GlossaryEntry for this keyword if found,
* return null if no entry is found.
* @param keyword
* @return
*/
public GlossaryEntry searchGlossary(String keyword);
/**
* get glossary
* @return Glossary
*/
public Glossary getGlossary();
/**
* get resource by doc id
* @param helpDocIdString
* @return Resource
*/
public Resource getResourceByDocId(String helpDocIdString);
/**
* get support email address
* @return address as string
*/
public String getSupportEmailAddress();
/**
* get REST configuration
* @return REST configuration
*/
public RestConfiguration getRestConfiguration();
/**
* get static EXTERNAL_LOCATION
* @return EXTERNAL_LOCATION
*/
public String getExternalLocation();
/**
* get server config service
* @return
*/
public ServerConfigurationService getServerConfigurationService();
/**
* set server config service
* @param s
*/
public void setServerConfigurationService(ServerConfigurationService s);
/**
* get Welcome Page
* @return docId of Welcome Page
*/
public String getWelcomePage();
}