Merged HEAD (5.2) to 5.2.N (5.2.1)

126508 jkaabimofrad: Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2)
      122778 jvonka: Nodes (FileFolder) API - list (folder) children - add "includeSource" option
      - optionally also lookup and return the folder/node info for parent (ie. source)
      - especially useful if also using "relativePath" to resolve the actual parent to be listed
      RA-823, RA-634, RA-753


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@126852 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Ancuta Morarasu
2016-05-11 11:46:49 +00:00
parent 5934340526
commit f4be36dc55
2 changed files with 61 additions and 19 deletions

View File

@@ -650,9 +650,7 @@ public class NodesImpl implements Nodes
String path = parameters.getParameter(PARAM_RELATIVE_PATH);
NodeRef nodeRef = validateOrLookupNode(nodeId, path);
QName typeQName = getNodeType(nodeRef);
return getFolderOrDocumentFullInfo(nodeRef, getParentNodeRef(nodeRef), typeQName, parameters);
return getFolderOrDocumentFullInfo(nodeRef, null, null, parameters);
}
private Node getFolderOrDocumentFullInfo(NodeRef nodeRef, NodeRef parentNodeRef, QName nodeTypeQName, Parameters parameters)
@@ -680,11 +678,21 @@ public class NodesImpl implements Nodes
pathInfo = lookupPathInfo(nodeRef);
}
Type type = getType(nodeTypeQName, nodeRef);
if (nodeTypeQName == null)
{
nodeTypeQName = getNodeType(nodeRef);
}
if (parentNodeRef == null)
{
parentNodeRef = getParentNodeRef(nodeRef);
}
Node node;
Map<QName, Serializable> properties = nodeService.getProperties(nodeRef);
Type type = getType(nodeTypeQName, nodeRef);
if (type == null)
{
// not direct folder (or file) ...
@@ -916,9 +924,9 @@ public class NodesImpl implements Nodes
final NodeRef parentNodeRef = validateOrLookupNode(parentFolderNodeId, path);
// check that resolved node is a folder
if (! nodeMatches(parentNodeRef, Collections.singleton(ContentModel.TYPE_FOLDER), null, false))
if (!nodeMatches(parentNodeRef, Collections.singleton(ContentModel.TYPE_FOLDER), null, false))
{
throw new InvalidArgumentException("NodeId of folder is expected: "+parentNodeRef.getId());
throw new InvalidArgumentException("NodeId of folder is expected: " + parentNodeRef.getId());
}
final List<String> selectParam = parameters.getSelectedProperties();
@@ -1040,7 +1048,14 @@ public class NodesImpl implements Nodes
}
};
return CollectionWithPagingInfo.asPaged(paging, nodes, pagingResults.hasMoreItems(), pagingResults.getTotalResultCount().getFirst());
Node sourceEntity = null;
if (parameters.includeSource())
{
sourceEntity = getFolderOrDocument(parentNodeRef, null, null, selectParam, mapUserInfo);
}
return CollectionWithPagingInfo.asPaged(paging, nodes, pagingResults.hasMoreItems(), pagingResults.getTotalResultCount().getFirst(), sourceEntity);
}
private Pair<QName,Boolean> parseNodeTypeFilter(String nodeTypeStr)
@@ -1553,10 +1568,7 @@ public class NodesImpl implements Nodes
setWriterContentType(writer, new ContentInfoWrapper(contentInfo), nodeRef, true);
writer.putContent(stream);
return getFolderOrDocumentFullInfo(nodeRef,
getParentNodeRef(nodeRef),
nodeService.getType(nodeRef),
parameters);
return getFolderOrDocumentFullInfo(nodeRef, null, null, parameters);
}
private void setWriterContentType(ContentWriter writer, ContentInfoWrapper contentInfo, NodeRef nodeRef, boolean guessEncodingIfNull)