001
014
015 package com.liferay.portal.model.impl;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.language.LanguageUtil;
019 import com.liferay.portal.kernel.log.Log;
020 import com.liferay.portal.kernel.log.LogFactoryUtil;
021 import com.liferay.portal.kernel.staging.StagingConstants;
022 import com.liferay.portal.kernel.staging.StagingUtil;
023 import com.liferay.portal.kernel.util.GetterUtil;
024 import com.liferay.portal.kernel.util.HtmlUtil;
025 import com.liferay.portal.kernel.util.LocaleUtil;
026 import com.liferay.portal.kernel.util.OrderByComparator;
027 import com.liferay.portal.kernel.util.StringBundler;
028 import com.liferay.portal.kernel.util.StringPool;
029 import com.liferay.portal.kernel.util.StringUtil;
030 import com.liferay.portal.kernel.util.UnicodeProperties;
031 import com.liferay.portal.kernel.util.Validator;
032 import com.liferay.portal.model.Company;
033 import com.liferay.portal.model.Group;
034 import com.liferay.portal.model.GroupConstants;
035 import com.liferay.portal.model.GroupWrapper;
036 import com.liferay.portal.model.Layout;
037 import com.liferay.portal.model.LayoutConstants;
038 import com.liferay.portal.model.LayoutPrototype;
039 import com.liferay.portal.model.LayoutSet;
040 import com.liferay.portal.model.LayoutSetPrototype;
041 import com.liferay.portal.model.Organization;
042 import com.liferay.portal.model.Portlet;
043 import com.liferay.portal.model.PortletConstants;
044 import com.liferay.portal.model.RoleConstants;
045 import com.liferay.portal.model.User;
046 import com.liferay.portal.model.UserGroup;
047 import com.liferay.portal.model.UserPersonalSite;
048 import com.liferay.portal.security.permission.ActionKeys;
049 import com.liferay.portal.security.permission.PermissionChecker;
050 import com.liferay.portal.service.GroupLocalServiceUtil;
051 import com.liferay.portal.service.LayoutLocalServiceUtil;
052 import com.liferay.portal.service.LayoutSetLocalServiceUtil;
053 import com.liferay.portal.service.PortletLocalServiceUtil;
054 import com.liferay.portal.service.RoleLocalServiceUtil;
055 import com.liferay.portal.service.permission.LayoutPermissionUtil;
056 import com.liferay.portal.theme.ThemeDisplay;
057 import com.liferay.portal.util.PortalUtil;
058 import com.liferay.portal.util.PropsValues;
059
060 import java.io.IOException;
061
062 import java.util.ArrayList;
063 import java.util.LinkedHashSet;
064 import java.util.List;
065 import java.util.Locale;
066 import java.util.Map;
067 import java.util.Set;
068
069
096 public class GroupImpl extends GroupBaseImpl {
097
098 public GroupImpl() {
099 }
100
101 @Override
102 public void clearStagingGroup() {
103 _stagingGroup = null;
104 }
105
106 @Override
107 public List<Group> getAncestors() throws PortalException {
108 Group group = null;
109
110 if (isStagingGroup()) {
111 group = getLiveGroup();
112 }
113 else {
114 group = this;
115 }
116
117 List<Group> groups = new ArrayList<Group>();
118
119 while (!group.isRoot()) {
120 group = group.getParentGroup();
121
122 groups.add(group);
123 }
124
125 return groups;
126 }
127
128 @Override
129 public List<Group> getChildren(boolean site) {
130 return GroupLocalServiceUtil.getGroups(
131 getCompanyId(), getGroupId(), site);
132 }
133
134
138 @Deprecated
139 @Override
140 public List<Group> getChildrenWithLayouts(
141 boolean site, int start, int end) {
142
143 return getChildrenWithLayouts(site, start, end, null);
144 }
145
146 @Override
147 public List<Group> getChildrenWithLayouts(
148 boolean site, int start, int end, OrderByComparator<Group> obc) {
149
150 return GroupLocalServiceUtil.getLayoutsGroups(
151 getCompanyId(), getGroupId(), site, start, end, obc);
152 }
153
154 @Override
155 public int getChildrenWithLayoutsCount(boolean site) {
156 return GroupLocalServiceUtil.getLayoutsGroupsCount(
157 getCompanyId(), getGroupId(), site);
158 }
159
160 @Override
161 public long getDefaultPrivatePlid() {
162 return getDefaultPlid(true);
163 }
164
165 @Override
166 public long getDefaultPublicPlid() {
167 return getDefaultPlid(false);
168 }
169
170 @Override
171 public List<Group> getDescendants(boolean site) {
172 Set<Group> descendants = new LinkedHashSet<Group>();
173
174 for (Group group : getChildren(site)) {
175 descendants.add(group);
176 descendants.addAll(group.getDescendants(site));
177 }
178
179 return new ArrayList<Group>(descendants);
180 }
181
182 @Override
183 public String getDescriptiveName() throws PortalException {
184 return getDescriptiveName(LocaleUtil.getMostRelevantLocale());
185 }
186
187 @Override
188 public String getDescriptiveName(Locale locale) throws PortalException {
189 return GroupLocalServiceUtil.getGroupDescriptiveName(this, locale);
190 }
191
192 @Override
193 public String getIconCssClass() {
194 String iconCss = "icon-globe";
195
196 if (isCompany()) {
197 iconCss = "icon-globe";
198 }
199 else if (isLayout()) {
200 iconCss = "icon-file";
201 }
202 else if (isOrganization()) {
203 iconCss = "icon-globe";
204 }
205 else if (isUser()) {
206 iconCss = "icon-user";
207 }
208
209 return iconCss;
210 }
211
212 @Override
213 public String getIconURL(ThemeDisplay themeDisplay) {
214 String iconURL = StringPool.BLANK;
215
216 if (isCompany()) {
217 iconURL = "../aui/globe";
218 }
219 else if (isLayout()) {
220 iconURL = "../aui/file";
221 }
222 else if (isOrganization()) {
223 iconURL = "../aui/globe";
224 }
225 else if (isUser()) {
226 iconURL = "../aui/user";
227 }
228 else {
229 iconURL = "../aui/globe";
230 }
231
232 return iconURL;
233 }
234
235 @Override
236 public String getLayoutRootNodeName(boolean privateLayout, Locale locale) {
237 String pagesName = null;
238
239 if (isLayoutPrototype() || isLayoutSetPrototype() || isUserGroup()) {
240 pagesName = "pages";
241 }
242 else if (privateLayout) {
243 if (isUser()) {
244 pagesName = "my-dashboard";
245 }
246 else {
247 pagesName = "private-pages";
248 }
249 }
250 else {
251 if (isUser()) {
252 pagesName = "my-profile";
253 }
254 else {
255 pagesName = "public-pages";
256 }
257 }
258
259 return LanguageUtil.get(locale, pagesName);
260 }
261
262 @Override
263 public Group getLiveGroup() {
264 if (!isStagingGroup()) {
265 return null;
266 }
267
268 try {
269 if (_liveGroup == null) {
270 _liveGroup = GroupLocalServiceUtil.getGroup(getLiveGroupId());
271
272 if (_liveGroup instanceof GroupImpl) {
273 GroupImpl groupImpl = (GroupImpl)_liveGroup;
274
275 groupImpl._stagingGroup = this;
276 }
277 else {
278 _liveGroup = new GroupWrapper(_liveGroup) {
279
280 @Override
281 public Group getStagingGroup() {
282 return GroupImpl.this;
283 }
284
285 };
286 }
287 }
288
289 return _liveGroup;
290 }
291 catch (Exception e) {
292 _log.error("Error getting live group for " + getLiveGroupId(), e);
293
294 return null;
295 }
296 }
297
298 @Override
299 public String getLiveParentTypeSettingsProperty(String key) {
300 UnicodeProperties typeSettingsProperties =
301 getParentLiveGroupTypeSettingsProperties();
302
303 return typeSettingsProperties.getProperty(key);
304 }
305
306 @Override
307 public long getOrganizationId() {
308 if (isOrganization()) {
309 if (isStagingGroup()) {
310 Group liveGroup = getLiveGroup();
311
312 return liveGroup.getClassPK();
313 }
314 else {
315 return getClassPK();
316 }
317 }
318
319 return 0;
320 }
321
322 @Override
323 public Group getParentGroup() throws PortalException {
324 long parentGroupId = getParentGroupId();
325
326 if (parentGroupId <= 0) {
327 return null;
328 }
329
330 return GroupLocalServiceUtil.getGroup(parentGroupId);
331 }
332
333 @Override
334 public UnicodeProperties getParentLiveGroupTypeSettingsProperties() {
335 try {
336 if (isLayout()) {
337 Group parentGroup = GroupLocalServiceUtil.getGroup(
338 getParentGroupId());
339
340 return parentGroup.getParentLiveGroupTypeSettingsProperties();
341 }
342
343 if (isStagingGroup()) {
344 Group liveGroup = getLiveGroup();
345
346 return liveGroup.getTypeSettingsProperties();
347 }
348 }
349 catch (Exception e) {
350 }
351
352 return getTypeSettingsProperties();
353 }
354
355 @Override
356 public String getPathFriendlyURL(
357 boolean privateLayout, ThemeDisplay themeDisplay) {
358
359 if (privateLayout) {
360 if (isUser()) {
361 return themeDisplay.getPathFriendlyURLPrivateUser();
362 }
363 else {
364 return themeDisplay.getPathFriendlyURLPrivateGroup();
365 }
366 }
367 else {
368 return themeDisplay.getPathFriendlyURLPublic();
369 }
370 }
371
372 @Override
373 public LayoutSet getPrivateLayoutSet() {
374 LayoutSet layoutSet = null;
375
376 try {
377 layoutSet = LayoutSetLocalServiceUtil.getLayoutSet(
378 getGroupId(), true);
379 }
380 catch (Exception e) {
381 _log.error(e, e);
382 }
383
384 return layoutSet;
385 }
386
387 @Override
388 public int getPrivateLayoutsPageCount() {
389 try {
390 return LayoutLocalServiceUtil.getLayoutsCount(this, true);
391 }
392 catch (Exception e) {
393 _log.error(e, e);
394 }
395
396 return 0;
397 }
398
399 @Override
400 public LayoutSet getPublicLayoutSet() {
401 LayoutSet layoutSet = null;
402
403 try {
404 layoutSet = LayoutSetLocalServiceUtil.getLayoutSet(
405 getGroupId(), false);
406 }
407 catch (Exception e) {
408 _log.error(e, e);
409 }
410
411 return layoutSet;
412 }
413
414 @Override
415 public int getPublicLayoutsPageCount() {
416 try {
417 return LayoutLocalServiceUtil.getLayoutsCount(this, false);
418 }
419 catch (Exception e) {
420 _log.error(e, e);
421 }
422
423 return 0;
424 }
425
426 @Override
427 public long getRemoteLiveGroupId() {
428 if (!isStagedRemotely()) {
429 return GroupConstants.DEFAULT_LIVE_GROUP_ID;
430 }
431
432 return GetterUtil.getLong(getTypeSettingsProperty("remoteGroupId"));
433 }
434
435 @Override
436 public String getScopeDescriptiveName(ThemeDisplay themeDisplay)
437 throws PortalException {
438
439 if (getGroupId() == themeDisplay.getScopeGroupId()) {
440 StringBundler sb = new StringBundler(5);
441
442 sb.append(themeDisplay.translate("current-site"));
443 sb.append(StringPool.SPACE);
444 sb.append(StringPool.OPEN_PARENTHESIS);
445 sb.append(
446 HtmlUtil.escape(getDescriptiveName(themeDisplay.getLocale())));
447 sb.append(StringPool.CLOSE_PARENTHESIS);
448
449 return sb.toString();
450 }
451 else if (isLayout() && (getClassPK() == themeDisplay.getPlid())) {
452 StringBundler sb = new StringBundler(5);
453
454 sb.append(themeDisplay.translate("current-page"));
455 sb.append(StringPool.SPACE);
456 sb.append(StringPool.OPEN_PARENTHESIS);
457 sb.append(
458 HtmlUtil.escape(getDescriptiveName(themeDisplay.getLocale())));
459 sb.append(StringPool.CLOSE_PARENTHESIS);
460
461 return sb.toString();
462 }
463 else if (isLayoutPrototype()) {
464 return themeDisplay.translate("default");
465 }
466 else {
467 return HtmlUtil.escape(
468 getDescriptiveName(themeDisplay.getLocale()));
469 }
470 }
471
472 @Override
473 public String getScopeLabel(ThemeDisplay themeDisplay) {
474 String label = "site";
475
476 if (getGroupId() == themeDisplay.getScopeGroupId()) {
477 label = "current-site";
478 }
479 else if (getGroupId() == themeDisplay.getCompanyGroupId()) {
480 label = "global";
481 }
482 else if (isLayout()) {
483 label = "page";
484 }
485 else {
486 Group scopeGroup = themeDisplay.getScopeGroup();
487
488 if (scopeGroup.hasAncestor(getGroupId())) {
489 label = "parent-site";
490 }
491 else if (hasAncestor(scopeGroup.getGroupId())) {
492 label = "child-site";
493 }
494 }
495
496 return label;
497 }
498
499 @Override
500 public Group getStagingGroup() {
501 if (isStagingGroup()) {
502 return null;
503 }
504
505 try {
506 if (_stagingGroup == null) {
507 _stagingGroup = GroupLocalServiceUtil.getStagingGroup(
508 getGroupId());
509
510 if (_stagingGroup instanceof GroupImpl) {
511 GroupImpl groupImpl = (GroupImpl)_stagingGroup;
512
513 groupImpl._liveGroup = this;
514 }
515 else {
516 _stagingGroup = new GroupWrapper(_stagingGroup) {
517
518 @Override
519 public Group getLiveGroup() {
520 return GroupImpl.this;
521 }
522
523 };
524 }
525 }
526
527 return _stagingGroup;
528 }
529 catch (Exception e) {
530 _log.error("Error getting staging group for " + getGroupId(), e);
531
532 return null;
533 }
534 }
535
536 @Override
537 public String getTypeLabel() {
538 return GroupConstants.getTypeLabel(getType());
539 }
540
541 @Override
542 public String getTypeSettings() {
543 if (_typeSettingsProperties == null) {
544 return super.getTypeSettings();
545 }
546 else {
547 return _typeSettingsProperties.toString();
548 }
549 }
550
551 @Override
552 public UnicodeProperties getTypeSettingsProperties() {
553 if (_typeSettingsProperties == null) {
554 _typeSettingsProperties = new UnicodeProperties(true);
555
556 try {
557 _typeSettingsProperties.load(super.getTypeSettings());
558 }
559 catch (IOException ioe) {
560 _log.error(ioe, ioe);
561 }
562 }
563
564 return _typeSettingsProperties;
565 }
566
567 @Override
568 public String getTypeSettingsProperty(String key) {
569 UnicodeProperties typeSettingsProperties = getTypeSettingsProperties();
570
571 return typeSettingsProperties.getProperty(key);
572 }
573
574 @Override
575 public String getUnambiguousName(String name, Locale locale) {
576 try {
577 StringBundler sb = new StringBundler(5);
578
579 sb.append(name);
580 sb.append(StringPool.SPACE);
581 sb.append(StringPool.OPEN_PARENTHESIS);
582 sb.append(getDescriptiveName(locale));
583 sb.append(StringPool.CLOSE_PARENTHESIS);
584
585 return sb.toString();
586 }
587 catch (Exception e) {
588 return name;
589 }
590 }
591
592 @Override
593 public boolean hasAncestor(long groupId) {
594 Group group = null;
595
596 if (isStagingGroup()) {
597 group = getLiveGroup();
598 }
599 else {
600 group = this;
601 }
602
603 String treePath = group.getTreePath();
604
605 if ((groupId != group.getGroupId()) &&
606 treePath.contains(StringPool.SLASH + groupId + StringPool.SLASH)) {
607
608 return true;
609 }
610
611 return false;
612 }
613
614 @Override
615 public boolean hasLocalOrRemoteStagingGroup() {
616 if (hasRemoteStagingGroup() || hasStagingGroup()) {
617 return true;
618 }
619
620 return false;
621 }
622
623 @Override
624 public boolean hasPrivateLayouts() {
625 if (getPrivateLayoutsPageCount() > 0) {
626 return true;
627 }
628 else {
629 return false;
630 }
631 }
632
633 @Override
634 public boolean hasPublicLayouts() {
635 if (getPublicLayoutsPageCount() > 0) {
636 return true;
637 }
638 else {
639 return false;
640 }
641 }
642
643 @Override
644 public boolean hasRemoteStagingGroup() {
645 if (getRemoteStagingGroupCount() > 0) {
646 return true;
647 }
648
649 return false;
650 }
651
652 @Override
653 public boolean hasStagingGroup() {
654 if (isStagingGroup()) {
655 return false;
656 }
657
658 if (_stagingGroup != null) {
659 return true;
660 }
661
662 try {
663 return GroupLocalServiceUtil.hasStagingGroup(getGroupId());
664 }
665 catch (Exception e) {
666 return false;
667 }
668 }
669
670
673 @Deprecated
674 @Override
675 public boolean isChild(long groupId) {
676 return hasAncestor(groupId);
677 }
678
679
682 @Deprecated
683 @Override
684 public boolean isCommunity() {
685 return isRegularSite();
686 }
687
688 @Override
689 public boolean isCompany() {
690 return hasClassName(Company.class) || isCompanyStagingGroup();
691 }
692
693 @Override
694 public boolean isCompanyStagingGroup() {
695 Group liveGroup = getLiveGroup();
696
697 if (liveGroup == null) {
698 return false;
699 }
700
701 return liveGroup.isCompany();
702 }
703
704 @Override
705 public boolean isControlPanel() {
706 String name = getName();
707
708 if (name.equals(GroupConstants.CONTROL_PANEL)) {
709 return true;
710 }
711 else {
712 return false;
713 }
714 }
715
716 @Override
717 public boolean isGuest() {
718 String name = getName();
719
720 if (name.equals(GroupConstants.GUEST)) {
721 return true;
722 }
723 else {
724 return false;
725 }
726 }
727
728 @Override
729 public boolean isInStagingPortlet(String portletId) {
730 Group liveGroup = getLiveGroup();
731
732 if (liveGroup == null) {
733 return false;
734 }
735
736 return liveGroup.isStagedPortlet(portletId);
737 }
738
739 @Override
740 public boolean isLayout() {
741 return hasClassName(Layout.class);
742 }
743
744 @Override
745 public boolean isLayoutPrototype() {
746 return hasClassName(LayoutPrototype.class);
747 }
748
749 @Override
750 public boolean isLayoutSetPrototype() {
751 return hasClassName(LayoutSetPrototype.class);
752 }
753
754 @Override
755 public boolean isLimitedToParentSiteMembers() {
756 if ((getParentGroupId() != GroupConstants.DEFAULT_PARENT_GROUP_ID) &&
757 (getMembershipRestriction() ==
758 GroupConstants.MEMBERSHIP_RESTRICTION_TO_PARENT_SITE_MEMBERS)) {
759
760 return true;
761 }
762
763 return false;
764 }
765
766 @Override
767 public boolean isOrganization() {
768 return hasClassName(Organization.class);
769 }
770
771 @Override
772 public boolean isRegularSite() {
773 return hasClassName(Group.class);
774 }
775
776 @Override
777 public boolean isRoot() {
778 if (getParentGroupId() ==
779 GroupConstants.DEFAULT_PARENT_GROUP_ID) {
780
781 return true;
782 }
783
784 return false;
785 }
786
787 @Override
788 public boolean isShowSite(
789 PermissionChecker permissionChecker, boolean privateSite)
790 throws PortalException {
791
792 if (!isControlPanel() && !isSite() && !isUser()) {
793 return false;
794 }
795
796 boolean showSite = true;
797
798 Layout defaultLayout = null;
799
800 int siteLayoutsCount = LayoutLocalServiceUtil.getLayoutsCount(
801 this, privateSite);
802
803 if (siteLayoutsCount == 0) {
804 boolean hasPowerUserRole = RoleLocalServiceUtil.hasUserRole(
805 permissionChecker.getUserId(), permissionChecker.getCompanyId(),
806 RoleConstants.POWER_USER, true);
807
808 if (isSite()) {
809 if (privateSite) {
810 showSite =
811 PropsValues.MY_SITES_SHOW_PRIVATE_SITES_WITH_NO_LAYOUTS;
812 }
813 else {
814 showSite =
815 PropsValues.MY_SITES_SHOW_PUBLIC_SITES_WITH_NO_LAYOUTS;
816 }
817 }
818 else if (isOrganization()) {
819 showSite = false;
820 }
821 else if (isUser()) {
822 if (privateSite) {
823 showSite =
824 PropsValues.
825 MY_SITES_SHOW_USER_PRIVATE_SITES_WITH_NO_LAYOUTS;
826
827 if (PropsValues.
828 LAYOUT_USER_PRIVATE_LAYOUTS_POWER_USER_REQUIRED &&
829 !hasPowerUserRole) {
830
831 showSite = false;
832 }
833 }
834 else {
835 showSite =
836 PropsValues.
837 MY_SITES_SHOW_USER_PUBLIC_SITES_WITH_NO_LAYOUTS;
838
839 if (PropsValues.
840 LAYOUT_USER_PUBLIC_LAYOUTS_POWER_USER_REQUIRED &&
841 !hasPowerUserRole) {
842
843 showSite = false;
844 }
845 }
846 }
847 }
848 else {
849 defaultLayout = LayoutLocalServiceUtil.fetchFirstLayout(
850 getGroupId(), privateSite,
851 LayoutConstants.DEFAULT_PARENT_LAYOUT_ID);
852
853 if ((defaultLayout != null ) &&
854 !LayoutPermissionUtil.contains(
855 permissionChecker, defaultLayout, true, ActionKeys.VIEW)) {
856
857 showSite = false;
858 }
859 else if (isOrganization() && !isSite()) {
860 _log.error(
861 "Group " + getGroupId() +
862 " is an organization site that does not have pages");
863 }
864 }
865
866 return showSite;
867 }
868
869 @Override
870 public boolean isStaged() {
871 return GetterUtil.getBoolean(
872 getLiveParentTypeSettingsProperty("staged"));
873 }
874
875 @Override
876 public boolean isStagedPortlet(String portletId) {
877 UnicodeProperties typeSettingsProperties =
878 getParentLiveGroupTypeSettingsProperties();
879
880 portletId = PortletConstants.getRootPortletId(portletId);
881
882 String typeSettingsProperty = typeSettingsProperties.getProperty(
883 StagingUtil.getStagedPortletId(portletId));
884
885 if (Validator.isNotNull(typeSettingsProperty)) {
886 return GetterUtil.getBoolean(typeSettingsProperty);
887 }
888
889 try {
890 Portlet portlet = PortletLocalServiceUtil.getPortletById(portletId);
891
892 String portletDataHandlerClass =
893 portlet.getPortletDataHandlerClass();
894
895 for (Map.Entry<String, String> entry :
896 typeSettingsProperties.entrySet()) {
897
898 String key = entry.getKey();
899
900 if (!key.contains(StagingConstants.STAGED_PORTLET)) {
901 continue;
902 }
903
904 String stagedPortletId = StringUtil.replace(
905 key, StagingConstants.STAGED_PORTLET, StringPool.BLANK);
906
907 Portlet stagedPortlet = PortletLocalServiceUtil.getPortletById(
908 stagedPortletId);
909
910 if (portletDataHandlerClass.equals(
911 stagedPortlet.getPortletDataHandlerClass())) {
912
913 return GetterUtil.getBoolean(entry.getValue());
914 }
915 }
916 }
917 catch (Exception e) {
918 }
919
920 return true;
921 }
922
923 @Override
924 public boolean isStagedRemotely() {
925 return GetterUtil.getBoolean(
926 getLiveParentTypeSettingsProperty("stagedRemotely"));
927 }
928
929 @Override
930 public boolean isStagingGroup() {
931 if (getLiveGroupId() == GroupConstants.DEFAULT_LIVE_GROUP_ID) {
932 return false;
933 }
934 else {
935 return true;
936 }
937 }
938
939 @Override
940 public boolean isUser() {
941 return hasClassName(User.class);
942 }
943
944 @Override
945 public boolean isUserGroup() {
946 return hasClassName(UserGroup.class);
947 }
948
949 @Override
950 public boolean isUserPersonalSite() {
951 return hasClassName(UserPersonalSite.class);
952 }
953
954 @Override
955 public void setTypeSettings(String typeSettings) {
956 _typeSettingsProperties = null;
957
958 super.setTypeSettings(typeSettings);
959 }
960
961 @Override
962 public void setTypeSettingsProperties(
963 UnicodeProperties typeSettingsProperties) {
964
965 _typeSettingsProperties = typeSettingsProperties;
966
967 super.setTypeSettings(_typeSettingsProperties.toString());
968 }
969
970 protected long getDefaultPlid(boolean privateLayout) {
971 try {
972 Layout firstLayout = LayoutLocalServiceUtil.fetchFirstLayout(
973 getGroupId(), privateLayout,
974 LayoutConstants.DEFAULT_PARENT_LAYOUT_ID);
975
976 if (firstLayout != null) {
977 return firstLayout.getPlid();
978 }
979 }
980 catch (Exception e) {
981 if (_log.isWarnEnabled()) {
982 _log.warn(e.getMessage());
983 }
984 }
985
986 return LayoutConstants.DEFAULT_PLID;
987 }
988
989 protected boolean hasClassName(Class<?> clazz) {
990 long classNameId = getClassNameId();
991
992 if (classNameId == PortalUtil.getClassNameId(clazz)) {
993 return true;
994 }
995 else {
996 return false;
997 }
998 }
999
1000 private static final Log _log = LogFactoryUtil.getLog(GroupImpl.class);
1001
1002 private Group _liveGroup;
1003 private Group _stagingGroup;
1004 private UnicodeProperties _typeSettingsProperties;
1005
1006 }