package org.alfresco.repo.site; import java.io.Serializable; import java.util.List; import java.util.Map; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; /** * Site service fundamental API. *
* This service API is designed to support the public facing Site APIs
*
* @author Roy Wetherall
*/
public interface SiteService
{
/**
* Create a new site.
*
* @param sitePreset site preset name
* @param shortName site short name, must be unique
* @param title site title
* @param description site description
* @param isPublic whether the site is public or not
* @return SiteInfo information about the created site
*/
SiteInfo createSite(String sitePreset, String shortName, String title, String description, boolean isPublic);
/**
* List the available sites. This list can optionally be filtered by site name and/or site preset.
*
* @param nameFilter name filter
* @param sitePresetFilter site preset filter
* @return List
* Returns null if the site can not be found.
*
* @param shortName the site short name
* @return SiteInfo the site information
*/
SiteInfo getSite(String shortName);
/**
* Update the site information.
*
* Note that the shortname and sitepreset of a site can not be updated once the site has been created.
*
* @param siteInfo site information
*/
void updateSite(SiteInfo siteInfo);
/**
* Delete the site.
*
* @param shortName site short name
*/
void deleteSite(String shortName);
/**
* List the memebers of the site.
*
* Name and role filters are optional and if not specified all the memebers of the site are returned.
*
* @param shortName site short name
* @param nameFilter name filter
* @param roleFilter role filter
* @return Map
* If no container type is specified then a node of type st:siteContainer is created.
*
* The map of container properties are set on the created container node. Null can be provided when no properties
* need to be set.
*
* @param shortName site short name
* @param componentId component id
* @param containerType container type to create (can be null)
* @param containerProperties container property values (can be null)
* @return
*/
NodeRef createContainer(String shortName, String componentId, QName containerType, Map