1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
19  
20  package com.liferay.portal.model.impl;
21  
22  import com.liferay.portal.kernel.util.StringPool;
23  import com.liferay.portal.kernel.util.StringUtil;
24  import com.liferay.portal.kernel.util.Validator;
25  import com.liferay.portal.model.EventDefinition;
26  import com.liferay.portal.model.PortletApp;
27  import com.liferay.portal.model.PortletFilter;
28  import com.liferay.portal.model.PortletURLListener;
29  import com.liferay.portal.model.PublicRenderParameter;
30  import com.liferay.portal.model.SpriteImage;
31  
32  import java.util.HashMap;
33  import java.util.Iterator;
34  import java.util.LinkedHashMap;
35  import java.util.LinkedHashSet;
36  import java.util.Map;
37  import java.util.Properties;
38  import java.util.Set;
39  
40  import javax.xml.XMLConstants;
41  
42  /**
43   * <a href="PortletAppImpl.java.html"><b><i>View Source</i></b></a>
44   *
45   * @author Brian Wing Shun Chan
46   *
47   */
48  public class PortletAppImpl implements PortletApp {
49  
50      public PortletAppImpl(String servletContextName) {
51          _servletContextName = servletContextName;
52  
53          if (Validator.isNotNull(_servletContextName)) {
54              _warFile = true;
55          }
56          else {
57              _warFile = false;
58          }
59      }
60  
61      public String getServletContextName() {
62          return _servletContextName;
63      }
64  
65      public Set<String> getServletURLPatterns() {
66          return _servletURLPatterns;
67      }
68  
69      public Set<String> getUserAttributes() {
70          return _userAttributes;
71      }
72  
73      public Map<String, String> getCustomUserAttributes() {
74          return _customUserAttributes;
75      }
76  
77      public void addPortletFilter(PortletFilter portletFilter) {
78          _portletFilters.add(portletFilter);
79          _portletFiltersByFilterName.put(
80              portletFilter.getFilterName(), portletFilter);
81      }
82  
83      public PortletFilter getPortletFilter(String filterName) {
84          return _portletFiltersByFilterName.get(filterName);
85      }
86  
87      public Set<PortletFilter> getPortletFilters() {
88          return _portletFilters;
89      }
90  
91      public String getDefaultNamespace() {
92          return _defaultNamespace;
93      }
94  
95      public void setDefaultNamespace(String defaultNamespace) {
96          _defaultNamespace = defaultNamespace;
97      }
98  
99      public void addEventDefinition(EventDefinition eventDefinition) {
100         _eventDefinitions.add(eventDefinition);
101     }
102 
103     public void addPublicRenderParameter(
104         PublicRenderParameter publicRenderParameter) {
105 
106         _publicRenderParameters.add(publicRenderParameter);
107         _publicRenderParametersByIdentifier.put(
108             publicRenderParameter.getIdentifier(), publicRenderParameter);
109     }
110 
111     public PublicRenderParameter getPublicRenderParameter(String identifier) {
112         return _publicRenderParametersByIdentifier.get(identifier);
113     }
114 
115     public void addPortletURLListener(PortletURLListener portletURLListener) {
116         _portletURLListeners.add(portletURLListener);
117         _portletURLListenersByListenerClass.put(
118             portletURLListener.getListenerClass(), portletURLListener);
119     }
120 
121     public PortletURLListener getPortletURLListener(String listenerClass) {
122         return _portletURLListenersByListenerClass.get(listenerClass);
123     }
124 
125     public Set<PortletURLListener> getPortletURLListeners() {
126         return _portletURLListeners;
127     }
128 
129     public Map<String, String[]> getContainerRuntimeOptions() {
130         return _containerRuntimeOptions;
131     }
132 
133     public SpriteImage getSpriteImage(String fileName) {
134         return _spriteImagesMap.get(fileName);
135     }
136 
137     public void setSpriteImages(
138         String spriteFileName, Properties properties) {
139 
140         Iterator<Map.Entry<Object, Object>> itr =
141             properties.entrySet().iterator();
142 
143         while (itr.hasNext()) {
144             Map.Entry<Object, Object> entry = itr.next();
145 
146             String key = (String)entry.getKey();
147             String value = (String)entry.getValue();
148 
149             int[] values = StringUtil.split(value, 0);
150 
151             int offset = values[0];
152             int height = values[1];
153             int width = values[2];
154 
155             SpriteImage spriteImage = new SpriteImage(
156                 spriteFileName, key, offset, height, width);
157 
158             _spriteImagesMap.put(key, spriteImage);
159         }
160     }
161 
162     public boolean isWARFile() {
163         return _warFile;
164     }
165 
166     public void setWARFile(boolean warFile) {
167         _warFile = warFile;
168     }
169 
170     private String _servletContextName = StringPool.BLANK;
171     private Set<String> _servletURLPatterns = new LinkedHashSet<String>();
172     private Set<String> _userAttributes = new LinkedHashSet<String>();
173     private Map<String, String> _customUserAttributes =
174         new LinkedHashMap<String, String>();
175     private Set<PortletFilter> _portletFilters =
176         new LinkedHashSet<PortletFilter>();
177     private Map<String, PortletFilter> _portletFiltersByFilterName =
178         new HashMap<String, PortletFilter>();
179     private String _defaultNamespace = XMLConstants.NULL_NS_URI;
180     private Set<EventDefinition> _eventDefinitions =
181         new LinkedHashSet<EventDefinition>();
182     private Set<PublicRenderParameter> _publicRenderParameters =
183         new LinkedHashSet<PublicRenderParameter>();
184     private Map<String, PublicRenderParameter>
185         _publicRenderParametersByIdentifier =
186             new HashMap<String, PublicRenderParameter>();
187     private Set<PortletURLListener> _portletURLListeners =
188         new LinkedHashSet<PortletURLListener>();
189     private Map<String, PortletURLListener>
190         _portletURLListenersByListenerClass =
191             new HashMap<String, PortletURLListener>();
192     private Map<String, String[]> _containerRuntimeOptions =
193         new HashMap<String, String[]>();
194     private Map<String, SpriteImage> _spriteImagesMap =
195         new HashMap<String, SpriteImage>();
196     private boolean _warFile;
197 
198 }