当前位置: 首页>>代码示例>>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;未经允许,请勿转载。