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.portlet.messageboards.model.impl;
21  
22  import com.liferay.portal.PortalException;
23  import com.liferay.portal.SystemException;
24  import com.liferay.portal.model.CompanyConstants;
25  import com.liferay.portal.util.PortalUtil;
26  import com.liferay.portlet.messageboards.model.MBCategory;
27  import com.liferay.portlet.messageboards.service.MBCategoryLocalServiceUtil;
28  
29  import java.util.ArrayList;
30  import java.util.List;
31  
32  /**
33   * <a href="MBCategoryImpl.java.html"><b><i>View Source</i></b></a>
34   *
35   * @author Brian Wing Shun Chan
36   *
37   */
38  public class MBCategoryImpl extends MBCategoryModelImpl implements MBCategory {
39  
40      public static long DEFAULT_PARENT_CATEGORY_ID = 0;
41  
42      public MBCategoryImpl() {
43      }
44  
45      public List<Long> getAncestorCategoryIds()
46          throws PortalException, SystemException {
47  
48          List<Long> ancestorCategoryIds = new ArrayList<Long>();
49  
50          MBCategory category = this;
51  
52          while (true) {
53              if (!category.isRoot()) {
54                  category = MBCategoryLocalServiceUtil.getCategory(
55                      category.getParentCategoryId());
56  
57                  ancestorCategoryIds.add(category.getCategoryId());
58              }
59              else {
60                  break;
61              }
62          }
63  
64          return ancestorCategoryIds;
65      }
66  
67      public List<MBCategory> getAncestors()
68          throws PortalException, SystemException {
69  
70          List<MBCategory> ancestors = new ArrayList<MBCategory>();
71  
72          MBCategory category = this;
73  
74          while (true) {
75              if (!category.isRoot()) {
76                  category = MBCategoryLocalServiceUtil.getCategory(
77                      category.getParentCategoryId());
78  
79                  ancestors.add(category);
80              }
81              else {
82                  break;
83              }
84          }
85  
86          return ancestors;
87      }
88  
89      public String getUserUuid() throws SystemException {
90          return PortalUtil.getUserValue(getUserId(), "uuid", _userUuid);
91      }
92  
93      public void setUserUuid(String userUuid) {
94          _userUuid = userUuid;
95      }
96  
97      public boolean isRoot() {
98          if (getParentCategoryId() == DEFAULT_PARENT_CATEGORY_ID) {
99              return true;
100         }
101         else {
102             return false;
103         }
104     }
105 
106     public boolean isDiscussion() {
107         if (getCategoryId() == CompanyConstants.SYSTEM) {
108             return true;
109         }
110         else {
111             return false;
112         }
113     }
114 
115     private String _userUuid;
116 
117 }