package com.xpn.xwiki.plugin.spacemanager.api; import java.util.HashMap; import java.util.Map; import com.xpn.xwiki.XWikiContext; import com.xpn.xwiki.XWikiException; import com.xpn.xwiki.doc.XWikiDocument; /** * @version $Id$ */ public class SpaceManagers { protected static Map spacemanagers = new HashMap(); public static void addSpaceManager(SpaceManager sm) { spacemanagers.put(sm.getSpaceTypeName(), sm); } public static SpaceManager findSpaceManagerForSpace(String space, XWikiContext context) throws SpaceManagerException { XWikiDocument doc; try { doc = context.getWiki().getDocument(space, "WebPreferences", context); } catch (XWikiException e) { throw new SpaceManagerException(e); } String type = doc.getStringValue(SpaceManager.SPACE_CLASS_NAME, "type"); if (type == null) type = SpaceManager.SPACE_DEFAULT_TYPE; return findSpaceManagerForType(type); } public static SpaceManager findSpaceManagerForType(String type) { return (SpaceManager) spacemanagers.get(type); } }