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