1
22
23 package com.liferay.portlet;
24
25 import com.liferay.portal.model.PortletApp;
26
27 import java.util.Map;
28 import java.util.concurrent.ConcurrentHashMap;
29
30 import javax.portlet.PortletContext;
31 import javax.portlet.filter.FilterConfig;
32
33
38 public class FilterConfigFactory {
39
40 public static FilterConfig create(
41 com.liferay.portal.model.PortletFilter portletFilter,
42 PortletContext ctx) {
43
44 return _instance._create(portletFilter, ctx);
45 }
46
47 public static void destroy(
48 com.liferay.portal.model.PortletFilter portletFilter) {
49
50 _instance._destroy(portletFilter);
51 }
52
53 private FilterConfigFactory() {
54 _pool = new ConcurrentHashMap<String, Map<String, FilterConfig>>();
55 }
56
57 private FilterConfig _create(
58 com.liferay.portal.model.PortletFilter portletFilter,
59 PortletContext ctx) {
60
61 PortletApp portletApp = portletFilter.getPortletApp();
62
63 Map<String, FilterConfig> filterConfigs =
64 _pool.get(portletApp.getServletContextName());
65
66 if (filterConfigs == null) {
67 filterConfigs = new ConcurrentHashMap<String, FilterConfig>();
68
69 _pool.put(portletApp.getServletContextName(), filterConfigs);
70 }
71
72 FilterConfig filterConfig = filterConfigs.get(
73 portletFilter.getFilterName());
74
75 if (filterConfig == null) {
76 filterConfig = new FilterConfigImpl(
77 portletFilter.getFilterName(), ctx,
78 portletFilter.getInitParams());
79
80 filterConfigs.put(portletFilter.getFilterName(), filterConfig);
81 }
82
83 return filterConfig;
84 }
85
86 private void _destroy(
87 com.liferay.portal.model.PortletFilter portletFilter) {
88
89 PortletApp portletApp = portletFilter.getPortletApp();
90
91 _pool.remove(portletApp.getServletContextName());
92 }
93
94 private static FilterConfigFactory _instance = new FilterConfigFactory();
95
96 private Map<String, Map<String, FilterConfig>> _pool;
97
98 }