001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.kernel.servlet;
016    
017    import com.liferay.portal.util.PortalUtil;
018    
019    import java.util.Collections;
020    import java.util.HashSet;
021    import java.util.Iterator;
022    import java.util.Set;
023    
024    import javax.portlet.PortletRequest;
025    
026    import javax.servlet.http.HttpServletRequest;
027    
028    /**
029     * @author Julio Camarero
030     * @author Brian Wing Shun Chan
031     */
032    public class MultiSessionMessages {
033    
034            public static void add(PortletRequest portletRequest, Class<?> clazz) {
035                    SessionMessages.add(portletRequest, clazz.getName());
036    
037                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
038                            portletRequest);
039    
040                    SessionMessages.add(request, clazz.getName());
041            }
042    
043            public static void add(
044                    PortletRequest portletRequest, Class<?> clazz, Object value) {
045    
046                    SessionMessages.add(portletRequest, clazz.getName(), value);
047    
048                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
049                            portletRequest);
050    
051                    SessionMessages.add(request, clazz.getName(), value);
052            }
053    
054            public static void add(PortletRequest portletRequest, String key) {
055                    SessionMessages.add(portletRequest, key);
056    
057                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
058                            portletRequest);
059    
060                    SessionMessages.add(request, key);
061            }
062    
063            public static void add(
064                    PortletRequest portletRequest, String key, Object value) {
065    
066                    SessionMessages.add(portletRequest, key, value);
067    
068                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
069                            portletRequest);
070    
071                    SessionMessages.add(request, key, value);
072            }
073    
074            public static void clear(PortletRequest portletRequest) {
075                    SessionMessages.clear(portletRequest);
076    
077                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
078                            portletRequest);
079    
080                    SessionMessages.clear(request);
081            }
082    
083            public static boolean contains(
084                    PortletRequest portletRequest, Class<?> clazz) {
085    
086                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
087                            portletRequest);
088    
089                    if (SessionMessages.contains(portletRequest, clazz.getName()) ||
090                            SessionMessages.contains(request, clazz.getName())) {
091    
092                            return true;
093                    }
094    
095                    return false;
096            }
097    
098            public static boolean contains(PortletRequest portletRequest, String key) {
099                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
100                            portletRequest);
101    
102                    if (SessionMessages.contains(portletRequest, key) ||
103                            SessionMessages.contains(request, key)) {
104    
105                            return true;
106                    }
107    
108                    return false;
109            }
110    
111            public static Object get(PortletRequest portletRequest, Class<?> clazz) {
112                    Object value = SessionMessages.get(portletRequest, clazz.getName());
113    
114                    if (value != null) {
115                            return value;
116                    }
117    
118                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
119                            portletRequest);
120    
121                    return SessionMessages.get(request, clazz.getName());
122            }
123    
124            public static Object get(PortletRequest portletRequest, String key) {
125                    Object value = SessionMessages.get(portletRequest, key);
126    
127                    if (value != null) {
128                            return value;
129                    }
130    
131                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
132                            portletRequest);
133    
134                    return SessionMessages.get(request, key);
135            }
136    
137            public static boolean isEmpty(PortletRequest portletRequest) {
138                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
139                            portletRequest);
140    
141                    if (SessionMessages.isEmpty(portletRequest) &&
142                            SessionMessages.isEmpty(request)) {
143    
144                            return true;
145                    }
146    
147                    return false;
148            }
149    
150            public static Iterator<String> iterator(PortletRequest portletRequest) {
151                    Set<String> set = keySet(portletRequest);
152    
153                    return set.iterator();
154            }
155    
156            public static Set<String> keySet(PortletRequest portletRequest) {
157                    Set<String> set = new HashSet<>();
158    
159                    set.addAll(SessionMessages.keySet(portletRequest));
160    
161                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
162                            portletRequest);
163    
164                    set.addAll(SessionMessages.keySet(request));
165    
166                    return Collections.unmodifiableSet(set);
167            }
168    
169            public static void print(PortletRequest portletRequest) {
170                    SessionMessages.print(portletRequest);
171    
172                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
173                            portletRequest);
174    
175                    SessionMessages.print(request);
176            }
177    
178            public static int size(PortletRequest portletRequest) {
179                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
180                            portletRequest);
181    
182                    return SessionMessages.size(portletRequest) +
183                            SessionMessages.size(request);
184            }
185    
186    }