001
014
015 package com.liferay.portal.model.impl;
016
017 import com.liferay.portal.kernel.util.StringPool;
018 import com.liferay.portal.kernel.util.StringUtil;
019 import com.liferay.portal.kernel.util.Validator;
020 import com.liferay.portal.kernel.xml.QName;
021 import com.liferay.portal.model.EventDefinition;
022 import com.liferay.portal.model.Portlet;
023 import com.liferay.portal.model.PortletApp;
024 import com.liferay.portal.model.PortletFilter;
025 import com.liferay.portal.model.PortletURLListener;
026 import com.liferay.portal.model.PublicRenderParameter;
027 import com.liferay.portal.model.SpriteImage;
028
029 import java.util.ArrayList;
030 import java.util.HashMap;
031 import java.util.LinkedHashMap;
032 import java.util.LinkedHashSet;
033 import java.util.List;
034 import java.util.Map;
035 import java.util.Properties;
036 import java.util.Set;
037
038 import javax.servlet.ServletContext;
039
040 import javax.xml.XMLConstants;
041
042
045 public class PortletAppImpl implements PortletApp {
046
047 public PortletAppImpl(String servletContextName) {
048 _servletContextName = servletContextName;
049
050 if (Validator.isNotNull(_servletContextName)) {
051 _contextPath = StringPool.SLASH.concat(_servletContextName);
052 _warFile = true;
053 }
054 else {
055 _warFile = false;
056 }
057 }
058
059 @Override
060 public void addEventDefinition(EventDefinition eventDefinition) {
061 _eventDefinitions.add(eventDefinition);
062 }
063
064 @Override
065 public void addPortlet(Portlet portlet) {
066 _portlets.add(portlet);
067 }
068
069 @Override
070 public void addPortletFilter(PortletFilter portletFilter) {
071 _portletFilters.add(portletFilter);
072 _portletFiltersByFilterName.put(
073 portletFilter.getFilterName(), portletFilter);
074 }
075
076 @Override
077 public void addPortletURLListener(PortletURLListener portletURLListener) {
078 _portletURLListeners.add(portletURLListener);
079 _portletURLListenersByListenerClass.put(
080 portletURLListener.getListenerClass(), portletURLListener);
081 }
082
083 @Override
084 public void addPublicRenderParameter(
085 PublicRenderParameter publicRenderParameter) {
086
087 _publicRenderParametersByIdentifier.put(
088 publicRenderParameter.getIdentifier(), publicRenderParameter);
089 }
090
091 @Override
092 public void addPublicRenderParameter(String identifier, QName qName) {
093 PublicRenderParameter publicRenderParameter =
094 new PublicRenderParameterImpl(identifier, qName, this);
095
096 addPublicRenderParameter(publicRenderParameter);
097 }
098
099 @Override
100 public void addServletURLPatterns(Set<String> servletURLPatterns) {
101 _servletURLPatterns.addAll(servletURLPatterns);
102 }
103
104 @Override
105 public Map<String, String[]> getContainerRuntimeOptions() {
106 return _containerRuntimeOptions;
107 }
108
109 @Override
110 public String getContextPath() {
111 return _contextPath;
112 }
113
114 @Override
115 public Map<String, String> getCustomUserAttributes() {
116 return _customUserAttributes;
117 }
118
119 @Override
120 public String getDefaultNamespace() {
121 return _defaultNamespace;
122 }
123
124 @Override
125 public Set<EventDefinition> getEventDefinitions() {
126 return _eventDefinitions;
127 }
128
129 @Override
130 public PortletFilter getPortletFilter(String filterName) {
131 return _portletFiltersByFilterName.get(filterName);
132 }
133
134 @Override
135 public Set<PortletFilter> getPortletFilters() {
136 return _portletFilters;
137 }
138
139 @Override
140 public List<Portlet> getPortlets() {
141 return new ArrayList<>(_portlets);
142 }
143
144 @Override
145 public PortletURLListener getPortletURLListener(String listenerClass) {
146 return _portletURLListenersByListenerClass.get(listenerClass);
147 }
148
149 @Override
150 public Set<PortletURLListener> getPortletURLListeners() {
151 return _portletURLListeners;
152 }
153
154 @Override
155 public PublicRenderParameter getPublicRenderParameter(String identifier) {
156 return _publicRenderParametersByIdentifier.get(identifier);
157 }
158
159 @Override
160 public ServletContext getServletContext() {
161 return _servletContext;
162 }
163
164 @Override
165 public String getServletContextName() {
166 return _servletContextName;
167 }
168
169 @Override
170 public Set<String> getServletURLPatterns() {
171 return _servletURLPatterns;
172 }
173
174 @Override
175 public SpriteImage getSpriteImage(String fileName) {
176 return _spriteImagesMap.get(fileName);
177 }
178
179 @Override
180 public Set<String> getUserAttributes() {
181 return _userAttributes;
182 }
183
184 @Override
185 public boolean isWARFile() {
186 return _warFile;
187 }
188
189 @Override
190 public void removePortlet(Portlet portletModel) {
191 _portlets.remove(portletModel);
192 }
193
194 @Override
195 public void setDefaultNamespace(String defaultNamespace) {
196 _defaultNamespace = defaultNamespace;
197 }
198
199 @Override
200 public void setServletContext(ServletContext servletContext) {
201 _servletContext = servletContext;
202
203 _contextPath = _servletContext.getContextPath();
204 }
205
206 @Override
207 public void setSpriteImages(String spriteFileName, Properties properties) {
208 for (Map.Entry<Object, Object> entry : properties.entrySet()) {
209 String key = (String)entry.getKey();
210 String value = (String)entry.getValue();
211
212 int[] values = StringUtil.split(value, 0);
213
214 int offset = values[0];
215 int height = values[1];
216 int width = values[2];
217
218 SpriteImage spriteImage = new SpriteImage(
219 spriteFileName, key, offset, height, width);
220
221 _spriteImagesMap.put(key, spriteImage);
222 }
223 }
224
225 @Override
226 public void setWARFile(boolean warFile) {
227 _warFile = warFile;
228 }
229
230 private final Map<String, String[]> _containerRuntimeOptions =
231 new HashMap<>();
232 private String _contextPath = StringPool.BLANK;
233 private final Map<String, String> _customUserAttributes =
234 new LinkedHashMap<>();
235 private String _defaultNamespace = XMLConstants.NULL_NS_URI;
236 private final Set<EventDefinition> _eventDefinitions =
237 new LinkedHashSet<>();
238 private final Set<PortletFilter> _portletFilters = new LinkedHashSet<>();
239 private final Map<String, PortletFilter> _portletFiltersByFilterName =
240 new HashMap<>();
241 private final Set<Portlet> _portlets = new LinkedHashSet<>();
242 private final Set<PortletURLListener> _portletURLListeners =
243 new LinkedHashSet<>();
244 private final Map<String, PortletURLListener>
245 _portletURLListenersByListenerClass = new HashMap<>();
246 private final Map<String, PublicRenderParameter>
247 _publicRenderParametersByIdentifier = new HashMap<>();
248 private ServletContext _servletContext;
249 private final String _servletContextName;
250 private final Set<String> _servletURLPatterns = new LinkedHashSet<>();
251 private final Map<String, SpriteImage> _spriteImagesMap = new HashMap<>();
252 private final Set<String> _userAttributes = new LinkedHashSet<>();
253 private boolean _warFile;
254
255 }