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