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 _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 _publicRenderParameters.add(publicRenderParameter);
081 _publicRenderParametersByIdentifier.put(
082 publicRenderParameter.getIdentifier(), publicRenderParameter);
083 }
084
085 public void addPublicRenderParameter(String identifier, QName qName) {
086 PublicRenderParameter publicRenderParameter =
087 new PublicRenderParameterImpl(identifier, qName, this);
088
089 addPublicRenderParameter(publicRenderParameter);
090 }
091
092 public void addServletURLPatterns(Set<String> servletURLPatterns) {
093 _servletURLPatterns.addAll(servletURLPatterns);
094 }
095
096 public Map<String, String[]> getContainerRuntimeOptions() {
097 return _containerRuntimeOptions;
098 }
099
100 public Map<String, String> getCustomUserAttributes() {
101 return _customUserAttributes;
102 }
103
104 public String getDefaultNamespace() {
105 return _defaultNamespace;
106 }
107
108 public PortletFilter getPortletFilter(String filterName) {
109 return _portletFiltersByFilterName.get(filterName);
110 }
111
112 public Set<PortletFilter> getPortletFilters() {
113 return _portletFilters;
114 }
115
116 public List<Portlet> getPortlets() {
117 return _portlets;
118 }
119
120 public PortletURLListener getPortletURLListener(String listenerClass) {
121 return _portletURLListenersByListenerClass.get(listenerClass);
122 }
123
124 public Set<PortletURLListener> getPortletURLListeners() {
125 return _portletURLListeners;
126 }
127
128 public PublicRenderParameter getPublicRenderParameter(String identifier) {
129 return _publicRenderParametersByIdentifier.get(identifier);
130 }
131
132 public String getServletContextName() {
133 return _servletContextName;
134 }
135
136 public Set<String> getServletURLPatterns() {
137 return _servletURLPatterns;
138 }
139
140 public SpriteImage getSpriteImage(String fileName) {
141 return _spriteImagesMap.get(fileName);
142 }
143
144 public Set<String> getUserAttributes() {
145 return _userAttributes;
146 }
147
148 public boolean isWARFile() {
149 return _warFile;
150 }
151
152 public void setDefaultNamespace(String defaultNamespace) {
153 _defaultNamespace = defaultNamespace;
154 }
155
156 public void setSpriteImages(
157 String spriteFileName, Properties properties) {
158
159 Iterator<Map.Entry<Object, Object>> itr =
160 properties.entrySet().iterator();
161
162 while (itr.hasNext()) {
163 Map.Entry<Object, Object> entry = itr.next();
164
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 Map<String, String> _customUserAttributes =
188 new LinkedHashMap<String, String>();
189 private String _defaultNamespace = XMLConstants.NULL_NS_URI;
190 private Set<EventDefinition> _eventDefinitions =
191 new LinkedHashSet<EventDefinition>();
192 private Set<PortletFilter> _portletFilters =
193 new LinkedHashSet<PortletFilter>();
194 private Map<String, PortletFilter> _portletFiltersByFilterName =
195 new HashMap<String, PortletFilter>();
196 private List<Portlet> _portlets = new UniqueList<Portlet>();
197 private Set<PortletURLListener> _portletURLListeners =
198 new LinkedHashSet<PortletURLListener>();
199 private Map<String, PortletURLListener>
200 _portletURLListenersByListenerClass =
201 new HashMap<String, PortletURLListener>();
202 private Set<PublicRenderParameter> _publicRenderParameters =
203 new LinkedHashSet<PublicRenderParameter>();
204 private Map<String, PublicRenderParameter>
205 _publicRenderParametersByIdentifier =
206 new HashMap<String, PublicRenderParameter>();
207 private String _servletContextName = StringPool.BLANK;
208 private Set<String> _servletURLPatterns = new LinkedHashSet<String>();
209 private Map<String, SpriteImage> _spriteImagesMap =
210 new HashMap<String, SpriteImage>();
211 private Set<String> _userAttributes = new LinkedHashSet<String>();
212 private boolean _warFile;
213
214 }