/*
 * Copyright (C) 2005-2010 Alfresco Software Limited.
 *
 * This file is part of Alfresco
 *
 * Alfresco is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Alfresco is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with Alfresco. If not, see 
* The site short name will be used to uniquely identify the site so it must be unique. * * @param sitePreset site preset * @param shortName site short name * @param title site title * @param description site description * @param visibility visibility of the site (public|moderated|private) * @return Site the created site */ public Site createSite(String sitePreset, String shortName, String title, String description, String visibility) { ParameterCheck.mandatoryString("visibility", visibility); SiteVisibility siteVisibility = SiteVisibility.valueOf(visibility); SiteInfo siteInfo = this.siteService.createSite(sitePreset, shortName, title, description, siteVisibility); return new Site(siteInfo, this.serviceRegistry, this.siteService, getScope()); } /** * List the sites available in the repository. The returned list can optionally be filtered by name and site * preset. *
* If no filters are specified then all the available sites are returned. * * @param nameFilter name filter * @param sitePresetFilter site preset filter * @return Site[] a list of the site filtered as appropriate */ public Site[] listSites(String nameFilter, String sitePresetFilter) { return listSites(nameFilter, sitePresetFilter, 0); } /** * List the sites available in the repository. The returned list can optionally be filtered by name and site * preset. *
     * If no filters are specified then all the available sites are returned.
     * 
     * @param nameFilter        name filter
     * @param sitePresetFilter  site preset filter
     * @param size              max results size crop if >0
     * 
     * @return Site[]           a list of the site filtered as appropriate             
     */
    public Site[] listSites(String nameFilter, String sitePresetFilter, int size)
    {
        List 
     * Returns null if the site does not exist.
     * 
     * @param shortName     short name of the site
     * @return Site         the site, null if does not exist
     */
    public Site getSite(String shortName)
    {
        Site site = null;
        SiteInfo siteInfo = this.siteService.getSite(shortName);
        if (siteInfo != null)
        {
            site = new Site(siteInfo, this.serviceRegistry, this.siteService, getScope());
        }
        return site;
    }
    
    /**
     * Returns an array of all the roles that can be assigned to a member of a site.
     * 
     * @return  String[]    roles available to assign to a member of a site
     */
    public String[] listSiteRoles()
    {
        List