1   /**
2    * Copyright (c) 2000-2007 Liferay, Inc. All rights reserved.
3    *
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions of the Software.
13   *
14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  
23  package com.liferay.portal.theme;
24  
25  import java.io.Serializable;
26  
27  import java.util.ArrayList;
28  import java.util.List;
29  import java.util.regex.Matcher;
30  import java.util.regex.Pattern;
31  
32  /**
33   * <a href="ThemeCompanyLimit.java.html"><b><i>View Source</i></b></a>
34   *
35   * @author Brian Wing Shun Chan
36   *
37   */
38  public class ThemeCompanyLimit implements Serializable {
39  
40      public ThemeCompanyLimit() {
41          _includes = new ArrayList();
42          _excludes = new ArrayList();
43      }
44  
45      public List getIncludes() {
46          return _includes;
47      }
48  
49      public void setIncludes(List includes) {
50          _includes = includes;
51      }
52  
53      public boolean isIncluded(long companyId) {
54          return _matches(_includes, companyId);
55      }
56  
57      public List getExcludes() {
58          return _excludes;
59      }
60  
61      public void setExcludes(List excludes) {
62          _excludes = excludes;
63      }
64  
65      public boolean isExcluded(long companyId) {
66          return _matches(_excludes, companyId);
67      }
68  
69      private boolean _matches(List themeCompanyIds, long companyId) {
70          for (int i = 0; i < themeCompanyIds.size(); i++) {
71              ThemeCompanyId themeCompanyId =
72                  (ThemeCompanyId)themeCompanyIds.get(i);
73  
74              String themeCompanyIdValue = themeCompanyId.getValue();
75  
76              if (themeCompanyId.isPattern()) {
77                  Pattern pattern = Pattern.compile(themeCompanyIdValue);
78                  Matcher matcher = pattern.matcher(String.valueOf(companyId));
79  
80                  if (matcher.matches()) {
81                      return true;
82                  }
83              }
84              else {
85                  Long themeCompanyIdValueLong = new Long(0);
86  
87                  try {
88                      themeCompanyIdValueLong = new Long(themeCompanyIdValue);
89                  }
90                  catch (Exception e) {
91                  }
92  
93                  if (themeCompanyIdValueLong.longValue() == companyId) {
94                      return true;
95                  }
96              }
97          }
98  
99          return false;
100     }
101 
102     private List _includes;
103     private List _excludes;
104 
105 }