1
22
23 package com.liferay.portlet;
24
25 import com.liferay.portal.util.WebKeys;
26
27 import java.util.HashMap;
28 import java.util.Map;
29 import java.util.concurrent.ConcurrentHashMap;
30
31 import javax.servlet.http.HttpServletRequest;
32 import javax.servlet.http.HttpSession;
33
34
40 public class RenderParametersPool {
41
42 public static void clear(HttpServletRequest req, long plid) {
43 Map<String, Map<String, String[]>> plidPool = get(req, plid);
44
45 plidPool.clear();
46 }
47
48 public static void clear(
49 HttpServletRequest req, long plid, String portletId) {
50
51 Map<String, String[]> params = get(req, plid, portletId);
52
53 params.clear();
54 }
55
56 public static Map<String, Map<String, String[]>> get(
57 HttpServletRequest req, long plid) {
58 HttpSession ses = req.getSession();
59
60 if (plid <= 0) {
61 return new ConcurrentHashMap<String, Map<String, String[]>>();
62 }
63
64 Map<Long, Map<String, Map<String, String[]>>> pool =
65 _getRenderParametersPool(ses);
66
67 Map<String, Map<String, String[]>> plidPool = pool.get(plid);
68
69 if (plidPool == null) {
70 plidPool = new ConcurrentHashMap<String, Map<String, String[]>>();
71
72 pool.put(plid, plidPool);
73 }
74
75 return plidPool;
76 }
77
78 public static Map<String, String[]> get(
79 HttpServletRequest req, long plid, String portletId) {
80
81 Map<String, Map<String, String[]>> plidPool = get(req, plid);
82
83 Map<String, String[]> params = plidPool.get(portletId);
84
85 if (params == null) {
86 params = new HashMap<String, String[]>();
87
88 plidPool.put(portletId, params);
89 }
90
91 return params;
92 }
93
94 public static void put(
95 HttpServletRequest req, long plid, String portletId,
96 Map<String, String[]> params) {
97
98 Map<String, Map<String, String[]>> plidPool = get(req, plid);
99
100 plidPool.put(portletId, params);
101 }
102
103 private static Map<Long, Map<String, Map<String, String[]>>>
104 _getRenderParametersPool(HttpSession ses) {
105
106 Map<Long, Map<String, Map<String, String[]>>> renderParametersPool =
107 (Map<Long, Map<String, Map<String, String[]>>>)ses.getAttribute(
108 WebKeys.PORTLET_RENDER_PARAMETERS);
109
110 if (renderParametersPool == null) {
111 renderParametersPool = new ConcurrentHashMap
112 <Long, Map<String, Map<String, String[]>>>();
113
114 ses.setAttribute(
115 WebKeys.PORTLET_RENDER_PARAMETERS, renderParametersPool);
116 }
117
118 return renderParametersPool;
119 }
120
121 }