package org.sakaiproject.site.util; import java.util.List; import org.sakaiproject.component.cover.ComponentManager; import org.sakaiproject.site.api.SiteService; public class SiteTypeUtil { private static org.sakaiproject.site.api.SiteService siteService = (org.sakaiproject.site.api.SiteService) ComponentManager .get("org.sakaiproject.site.api.SiteService"); private static org.sakaiproject.component.api.ServerConfigurationService serverConfigurationService = (org.sakaiproject.component.api.ServerConfigurationService) ComponentManager .get("org.sakaiproject.component.api.ServerConfigurationService"); /** * get all site type strings associated with course site type * @return */ public static List<String> getCourseSiteTypes() { return siteService.getSiteTypeStrings("course"); } /** * get all site type strings associated with project site type * @return */ public static List<String> getProjectSiteTypes() { return siteService.getSiteTypeStrings("project"); } /** * Is the siteType of course site types * @param siteType * @return */ public static boolean isCourseSite(String siteType) { return isOfSiteType("course", siteType); } /** * Is the siteType of project site types * @param siteType * @return */ public static boolean isProjectSite(String siteType) { return isOfSiteType("project", siteType); } /** * site type lookup * @param targetSiteType * @param targetSiteTypeDefault * @param currentSiteType * @return */ private static boolean isOfSiteType(String targetSiteType, String currentSiteType) { boolean rv = false; List<String> siteTypes = siteService.getSiteTypeStrings(targetSiteType); if (currentSiteType != null && siteTypes != null && siteTypes.contains(currentSiteType)) { rv = true; } return rv; } /** * returns the site type String to use for sites created based on the template site with siteType * @param siteType * @return */ public static String getTargetSiteType(String siteType) { // defaults to current siteType String rv = siteType; // TODO: we only look for course and project site types for now if (isCourseSite(siteType)) { rv = serverConfigurationService.getString("courseSiteTargetType", siteType); } else if (isProjectSite(siteType)) { rv = serverConfigurationService.getString("projectSiteTargetType", siteType); } return rv; } }