001
014
015 package com.liferay.portlet.messageboards.model.impl;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portlet.messageboards.model.MBCategory;
020 import com.liferay.portlet.messageboards.model.MBCategoryConstants;
021 import com.liferay.portlet.messageboards.service.MBCategoryLocalServiceUtil;
022
023 import java.util.ArrayList;
024 import java.util.List;
025
026
029 public class MBCategoryImpl extends MBCategoryBaseImpl {
030
031 public MBCategoryImpl() {
032 }
033
034 @Override
035 public List<Long> getAncestorCategoryIds()
036 throws PortalException, SystemException {
037
038 List<Long> ancestorCategoryIds = new ArrayList<Long>();
039
040 MBCategory category = this;
041
042 while (!category.isRoot()) {
043 category = MBCategoryLocalServiceUtil.getCategory(
044 category.getParentCategoryId());
045
046 ancestorCategoryIds.add(category.getCategoryId());
047 }
048
049 return ancestorCategoryIds;
050 }
051
052 @Override
053 public List<MBCategory> getAncestors()
054 throws PortalException, SystemException {
055
056 List<MBCategory> ancestors = new ArrayList<MBCategory>();
057
058 MBCategory category = this;
059
060 while (!category.isRoot()) {
061 category = category.getParentCategory();
062
063 ancestors.add(category);
064 }
065
066 return ancestors;
067 }
068
069 @Override
070 public MBCategory getParentCategory()
071 throws PortalException, SystemException {
072
073 long parentCategoryId = getParentCategoryId();
074
075 if ((parentCategoryId ==
076 MBCategoryConstants.DEFAULT_PARENT_CATEGORY_ID) ||
077 (parentCategoryId == MBCategoryConstants.DISCUSSION_CATEGORY_ID)) {
078
079 return null;
080 }
081
082 return MBCategoryLocalServiceUtil.getCategory(getParentCategoryId());
083 }
084
085 @Override
086 public MBCategory getTrashContainer() {
087 MBCategory category = null;
088
089 try {
090 category = getParentCategory();
091 }
092 catch (Exception e) {
093 return null;
094 }
095
096 while (category != null) {
097 if (category.isInTrash()) {
098 return category;
099 }
100
101 try {
102 category = category.getParentCategory();
103 }
104 catch (Exception e) {
105 return null;
106 }
107 }
108
109 return null;
110 }
111
112 @Override
113 public boolean isInTrashContainer() {
114 if (getTrashContainer() != null) {
115 return true;
116 }
117 else {
118 return false;
119 }
120 }
121
122 @Override
123 public boolean isRoot() {
124 if (getParentCategoryId() ==
125 MBCategoryConstants.DEFAULT_PARENT_CATEGORY_ID) {
126
127 return true;
128 }
129
130 return false;
131 }
132
133 }