01: package com.openedit.webui.tree;
02:
03: import org.apache.commons.logging.Log;
04: import org.apache.commons.logging.LogFactory;
05:
06: import com.openedit.OpenEditException;
07: import com.openedit.WebPageRequest;
08: import com.openedit.page.Page;
09: import com.openedit.page.manage.PageManager;
10: import com.openedit.util.strainer.Filter;
11: import com.openedit.util.strainer.FilterException;
12: import com.openedit.util.strainer.FilterVisitor;
13:
14: public class PagePathViewFilter implements Filter {
15: private static final Log log = LogFactory
16: .getLog(PagePathViewFilter.class);
17:
18: PageManager fieldPageManager;
19: WebPageRequest fieldLoadingWebPageRequest;
20:
21: public boolean passes(Object inObj) throws FilterException {
22: String path = (String) inObj;
23: try {
24: Page page = getPageManager().getPage(path);
25: Filter view = page.getViewFilter();
26: if (view != null) {
27: WebPageRequest copy = getLoadingWebPageRequest().copy(
28: page);
29: boolean ok = view.passes(copy);
30: return ok;
31: }
32: return true;
33: } catch (OpenEditException ex) {
34: throw new FilterException(ex);
35: } finally {
36: getPageManager().clearCache(path);
37: }
38:
39: }
40:
41: public PageManager getPageManager() {
42: return fieldPageManager;
43: }
44:
45: public void setPageManager(PageManager inPageManager) {
46: fieldPageManager = inPageManager;
47: }
48:
49: public WebPageRequest getLoadingWebPageRequest() {
50: return fieldLoadingWebPageRequest;
51: }
52:
53: public void setLoadingWebPageRequest(
54: WebPageRequest inLoadingWebPageRequest) {
55: fieldLoadingWebPageRequest = inLoadingWebPageRequest;
56: }
57:
58: public void accept(FilterVisitor inFilterVisitor)
59: throws FilterException {
60: }
61:
62: public Filter[] getFilters() {
63: return null;
64: }
65: }
|