protected LayoutFriendlyURL getUniqueLayoutFriendlyURL( PortletDataContext portletDataContext, LayoutFriendlyURL layoutFriendlyURL, LayoutFriendlyURL existingLayoutFriendlyURL) throws Exception { String friendlyURL = layoutFriendlyURL.getFriendlyURL(); for (int i = 1; ; i++) { LayoutFriendlyURL duplicateLayoutFriendlyURL = LayoutFriendlyURLLocalServiceUtil.fetchLayoutFriendlyURL( portletDataContext.getScopeGroupId(), layoutFriendlyURL.isPrivateLayout(), layoutFriendlyURL.getFriendlyURL(), layoutFriendlyURL.getLanguageId()); if ((duplicateLayoutFriendlyURL == null) || ((existingLayoutFriendlyURL != null) && (existingLayoutFriendlyURL.getLayoutFriendlyURLId() == duplicateLayoutFriendlyURL.getLayoutFriendlyURLId()))) { break; } layoutFriendlyURL.setFriendlyURL(friendlyURL + i); } return layoutFriendlyURL; }
protected void deleteMissingLayoutFriendlyURLs( PortletDataContext portletDataContext, Layout layout) { Map<Long, Long> layoutFriendlyURLIds = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(LayoutFriendlyURL.class); List<LayoutFriendlyURL> layoutFriendlyURLs = _layoutFriendlyURLLocalService.getLayoutFriendlyURLs(layout.getPlid()); for (LayoutFriendlyURL layoutFriendlyURL : layoutFriendlyURLs) { if (!layoutFriendlyURLIds.containsValue(layoutFriendlyURL.getLayoutFriendlyURLId())) { _layoutFriendlyURLLocalService.deleteLayoutFriendlyURL(layoutFriendlyURL); } } }