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