01: package org.openedit.store.links;
02:
03: import java.util.HashMap;
04: import java.util.Map;
05:
06: import org.openedit.links.LinkModule;
07: import org.openedit.links.XmlLinkLoader;
08: import org.openedit.store.Store;
09: import org.openedit.store.xmldb.XmlStoreArchive;
10:
11: import com.openedit.OpenEditException;
12: import com.openedit.WebPageRequest;
13: import com.openedit.page.Page;
14:
15: public class StoreLinkModule extends LinkModule {
16: Map storeLoader = new HashMap();
17:
18: public XmlLinkLoader getLinkLoader(WebPageRequest inReq)
19: throws OpenEditException {
20: //String linkLoader = getLoaderName(inReq);
21: Store store = getStore(inReq);
22: XmlCatalogLinkLoader loader = (XmlCatalogLinkLoader) storeLoader
23: .get(store.getCatalogId());
24: if (loader == null) {
25: loader = (XmlCatalogLinkLoader) getModuleManager().getBean(
26: "CatalogLinkLoader");
27: loader.setStore(store);
28: storeLoader.put(store.getCatalogId(), loader);
29: }
30: return loader;
31: }
32:
33: public Store getStore(WebPageRequest inPageRequest)
34: throws OpenEditException {
35: Page page = inPageRequest.getContentPage();
36: String readername = null;
37: if (page != null) {
38: readername = page.get("storereadername");
39: }
40: if (readername == null) {
41: readername = "StoreDataReader";
42: }
43: XmlStoreArchive reader = (XmlStoreArchive) getModuleManager()
44: .getBean(readername);
45: Store store = reader.loadStore(inPageRequest);
46: return store;
47: }
48:
49: }
|