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 PortletFilter getPortletFilter(String filterName) {
112 return _portletFiltersByFilterName.get(filterName);
113 }
114
115 public Set<PortletFilter> getPortletFilters() {
116 return _portletFilters;
117 }
118
119 public List<Portlet> getPortlets() {
120 return _portlets;
121 }
122
123 public PortletURLListener getPortletURLListener(String listenerClass) {
124 return _portletURLListenersByListenerClass.get(listenerClass);
125 }
126
127 public Set<PortletURLListener> getPortletURLListeners() {
128 return _portletURLListeners;
129 }
130
131 public PublicRenderParameter getPublicRenderParameter(String identifier) {
132 return _publicRenderParametersByIdentifier.get(identifier);
133 }
134
135 public String getServletContextName() {
136 return _servletContextName;
137 }
138
139 public Set<String> getServletURLPatterns() {
140 return _servletURLPatterns;
141 }
142
143 public SpriteImage getSpriteImage(String fileName) {
144 return _spriteImagesMap.get(fileName);
145 }
146
147 public Set<String> getUserAttributes() {
148 return _userAttributes;
149 }
150
151 public boolean isWARFile() {
152 return _warFile;
153 }
154
155 public void setDefaultNamespace(String defaultNamespace) {
156 _defaultNamespace = defaultNamespace;
157 }
158
159 public void setSpriteImages(String spriteFileName, Properties properties) {
160 for (Map.Entry<Object, Object> entry : properties.entrySet()) {
161 String key = (String)entry.getKey();
162 String value = (String)entry.getValue();
163
164 int[] values = StringUtil.split(value, 0);
165
166 int offset = values[0];
167 int height = values[1];
168 int width = values[2];
169
170 SpriteImage spriteImage = new SpriteImage(
171 spriteFileName, key, offset, height, width);
172
173 _spriteImagesMap.put(key, spriteImage);
174 }
175 }
176
177 public void setWARFile(boolean warFile) {
178 _warFile = warFile;
179 }
180
181 private Map<String, String[]> _containerRuntimeOptions =
182 new HashMap<String, String[]>();
183 private String _contextPath = StringPool.BLANK;
184 private Map<String, String> _customUserAttributes =
185 new LinkedHashMap<String, String>();
186 private String _defaultNamespace = XMLConstants.NULL_NS_URI;
187 private Set<EventDefinition> _eventDefinitions =
188 new LinkedHashSet<EventDefinition>();
189 private Set<PortletFilter> _portletFilters =
190 new LinkedHashSet<PortletFilter>();
191 private Map<String, PortletFilter> _portletFiltersByFilterName =
192 new HashMap<String, PortletFilter>();
193 private List<Portlet> _portlets = new UniqueList<Portlet>();
194 private Set<PortletURLListener> _portletURLListeners =
195 new LinkedHashSet<PortletURLListener>();
196 private Map<String, PortletURLListener>
197 _portletURLListenersByListenerClass =
198 new HashMap<String, PortletURLListener>();
199 private Map<String, PublicRenderParameter>
200 _publicRenderParametersByIdentifier =
201 new HashMap<String, PublicRenderParameter>();
202 private String _servletContextName = StringPool.BLANK;
203 private Set<String> _servletURLPatterns = new LinkedHashSet<String>();
204 private Map<String, SpriteImage> _spriteImagesMap =
205 new HashMap<String, SpriteImage>();
206 private Set<String> _userAttributes = new LinkedHashSet<String>();
207 private boolean _warFile;
208
209 }