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