Как правильно создать узел? и кто-нибудь может объяснить для меня параметр createNode - PullRequest
2 голосов
/ 01 августа 2011

Я работаю на Alfresco 3.4, и я пытаюсь создать узел, и у меня возникла проблема после создания узла, смоделированного в браузере узлов, который не может видеть мои новые узлы, поэтому

Может кто-нибудь помочь мне и увидеть, как создать узел и каковы параметры метода создания узла? может кто-нибудь направить меня и уточнить метод создания узла.

Спасибо Мухаммед Амр Старший системный разработчик Цифровая серия

1 Ответ

11 голосов
/ 01 августа 2011

РЕДАКТИРОВАТЬ: просто проверено , используйте ASSOC_CONTAINS вместо ASSOC_CHILDREN

Существуют различные способы создания нового контента из вашего кода Java, например, с помощью:

Полагаю, вы ссылаетесь здесь на последний метод. Давайте посмотрим на сигнатуру метода (есть другая версия createNode, которая также принимает Map для начальных свойств, я бы просто пропустил ее сейчас):

ChildAssociationRef createNode(NodeRef parentRef,
                               QName assocTypeQName,
                               QName assocQName,
                               QName nodeTypeQName)
                               throws InvalidNodeRefException,
                                      InvalidTypeException

Допустим, мы хотим создать новый узел в папке, ваш код будет выглядеть следующим образом:

NodeRef folderNode = getMyFolderNode();
ChildAssociationRef childAssoc = nodeService.createNode(folderNode,
                                             ContentModel.ASSOC_CONTAINS,
                                             QName.createQName("{foo}bar"),
                                             ContentModel.TYPE_CONTENT);

Результатом этого вызова будет новый узел, созданный в folderNode.

Новый узел будет связан со своей родительской папкой ассоциацией типа ContentModel.ASSOC_CONTAINS: это наиболее важная часть, поскольку узлы могут быть связаны с использованием ряда различных ассоциаций, но родительский -детей, который браузер узла использует для отображения содержимого как поданного внутри другого, является только этим.

{foo}bar - это QName, который идентифицирует эту конкретную родительско-дочернюю ассоциацию. В браузере узлов вы можете увидеть эффект этого параметра в пути к узлу, например /app:company_home/...../foo:bar.

Последний параметр ContentModel.TYPE_CONTENT - это, конечно, тип, с которым вы хотите создать новый узел. Возможно, вы захотите использовать QName, который ссылается на ваш собственный тип.

...