當前位置: 首頁>>代碼示例>>Java>>正文


Java ContentModel.PROP_AUTHORITY_NAME屬性代碼示例

本文整理匯總了Java中org.alfresco.model.ContentModel.PROP_AUTHORITY_NAME屬性的典型用法代碼示例。如果您正苦於以下問題:Java ContentModel.PROP_AUTHORITY_NAME屬性的具體用法?Java ContentModel.PROP_AUTHORITY_NAME怎麽用?Java ContentModel.PROP_AUTHORITY_NAME使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在org.alfresco.model.ContentModel的用法示例。


在下文中一共展示了ContentModel.PROP_AUTHORITY_NAME屬性的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: onUpdateProperties

public void onUpdateProperties(NodeRef nodeRef, Map<QName, Serializable> before, Map<QName, Serializable> after)
{
    boolean isAuthority = dictionaryService.isSubClass(nodeService.getType(nodeRef), ContentModel.TYPE_AUTHORITY_CONTAINER);
    QName idProp = isAuthority ? ContentModel.PROP_AUTHORITY_NAME  : ContentModel.PROP_USERNAME;
    String authBefore = DefaultTypeConverter.INSTANCE.convert(String.class, before.get(idProp));
    if (authBefore == null)
    {
        // Node has just been created; nothing to do
        return;
    }
    String authAfter = DefaultTypeConverter.INSTANCE.convert(String.class, after.get(idProp));
    if (!EqualsHelper.nullSafeEquals(authBefore, authAfter))
    {
        if (AlfrescoTransactionSupport.getResource(PersonServiceImpl.KEY_ALLOW_UID_UPDATE) != null || authBefore.equalsIgnoreCase(authAfter))
        {
            if (isAuthority)
            {
                if (authBefore != null)
                {
                    // Fix any ACLs
                    aclDao.renameAuthority(authBefore, authAfter);
                }

                // Fix primary association local name
                QName newAssocQName = QName.createQName("cm", authAfter, namespacePrefixResolver);
                ChildAssociationRef assoc = nodeService.getPrimaryParent(nodeRef);
                nodeService.moveNode(nodeRef, assoc.getParentRef(), assoc.getTypeQName(), newAssocQName);

                // Fix other non-case sensitive parent associations
                QName oldAssocQName = QName.createQName("cm", authBefore, namespacePrefixResolver);
                newAssocQName = QName.createQName("cm", authAfter, namespacePrefixResolver);
                for (ChildAssociationRef parent : nodeService.getParentAssocs(nodeRef))
                {
                    if (!parent.isPrimary() && parent.getQName().equals(oldAssocQName))
                    {
                        nodeService.removeChildAssociation(parent);
                        nodeService.addChild(parent.getParentRef(), parent.getChildRef(), parent.getTypeQName(),
                                newAssocQName);
                    }
                }
                authorityLookupCache.clear();
                authorityBridgeTableCache.refresh();
                
                // Cache is out of date
                userAuthorityCache.clear();
            }
            else
            {
                userAuthorityCache.remove(authBefore);
            }
            // Remove cache entires for the parents.  No need to lock because the data has already been updated.
            removeParentsFromChildAuthorityCache(nodeRef, false);
        }
        else
        {
            throw new UnsupportedOperationException("The name of an authority can not be changed");
        }
    }
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:59,代碼來源:AuthorityDAOImpl.java


注:本文中的org.alfresco.model.ContentModel.PROP_AUTHORITY_NAME屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。