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

126361 jkaabimofrad: Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2)
      119716 jvonka: FileFolder API - handle "select", eg. get node info, list folder children
      - list folder children returns minimal info, select can be used to get additional info, eg. aspectNames, properties (or specific props)
      - get node info returns basic info, select can be used to get additional info, eg. path
      - RA-634, RA-638


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@126707 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Ancuta Morarasu
2016-05-11 10:48:08 +00:00
parent 8d24f35395
commit 0cc3c96865

View File

@@ -131,6 +131,9 @@ public class NodesImpl implements Nodes
private final static String PARAM_RELATIVE_PATH = "relativePath"; // TODO wip private final static String PARAM_RELATIVE_PATH = "relativePath"; // TODO wip
private final static String PARAM_SELECT_PROPERTIES = "properties"; private final static String PARAM_SELECT_PROPERTIES = "properties";
private final static String PARAM_SELECT_PATH = "path";
private final static String PARAM_SELECT_ASPECTNAMES = "aspectNames";
private final static String PARAM_SELECT_ISLINK = "isLink"; // TODO ...
private NodeService nodeService; private NodeService nodeService;
private DictionaryService dictionaryService; private DictionaryService dictionaryService;
@@ -512,18 +515,24 @@ public class NodesImpl implements Nodes
QName typeQName = nodeService.getType(nodeRef); QName typeQName = nodeService.getType(nodeRef);
List<String> selectParam = parameters.getSelectedProperties(); List<String> selectParam = new ArrayList<>();
return getFolderOrDocument(nodeRef, getParentNodeRef(nodeRef), typeQName, selectParam, false, null); selectParam.addAll(parameters.getSelectedProperties());
// Add basic info for single get (above & beyond minimal that is used for listing collections)
selectParam.add(PARAM_SELECT_ASPECTNAMES);
selectParam.add(PARAM_SELECT_PROPERTIES);
return getFolderOrDocument(nodeRef, getParentNodeRef(nodeRef), typeQName, selectParam, null);
} }
private Node getFolderOrDocument(final NodeRef nodeRef, NodeRef parentNodeRef, QName typeQName, List<String> selectParam, boolean minimalInfo, Map<String,UserInfo> mapUserInfo) private Node getFolderOrDocument(final NodeRef nodeRef, NodeRef parentNodeRef, QName typeQName, List<String> selectParam, Map<String,UserInfo> mapUserInfo)
{ {
if (mapUserInfo == null) { if (mapUserInfo == null) {
mapUserInfo = new HashMap<>(2); mapUserInfo = new HashMap<>(2);
} }
PathInfo pathInfo = null; PathInfo pathInfo = null;
if (!minimalInfo) if (selectParam.contains(PARAM_SELECT_PATH))
{ {
pathInfo = lookupPathInfo(nodeRef); pathInfo = lookupPathInfo(nodeRef);
} }
@@ -547,9 +556,13 @@ public class NodesImpl implements Nodes
throw new InvalidArgumentException("Node is not a folder or file"); throw new InvalidArgumentException("Node is not a folder or file");
} }
if (! minimalInfo) if (selectParam.size() > 0)
{ {
node.setProperties(mapFromNodeProperties(properties, selectParam, mapUserInfo)); node.setProperties(mapFromNodeProperties(properties, selectParam, mapUserInfo));
}
if (selectParam.contains(PARAM_SELECT_ASPECTNAMES))
{
node.setAspectNames(mapFromNodeAspects(nodeService.getAspects(nodeRef))); node.setAspectNames(mapFromNodeAspects(nodeService.getAspects(nodeRef)));
} }
@@ -746,7 +759,6 @@ public class NodesImpl implements Nodes
final NodeRef parentNodeRef = validateOrLookupNode(parentFolderNodeId, null); final NodeRef parentNodeRef = validateOrLookupNode(parentFolderNodeId, null);
final List<String> selectParam = parameters.getSelectedProperties(); final List<String> selectParam = parameters.getSelectedProperties();
final boolean minimalInfo = (selectParam.size() == 0);
boolean includeFolders = true; boolean includeFolders = true;
boolean includeFiles = true; boolean includeFiles = true;
@@ -816,7 +828,7 @@ public class NodesImpl implements Nodes
FileInfo fInfo = page.get(index); FileInfo fInfo = page.get(index);
// minimal info by default (unless "select"ed otherwise) // minimal info by default (unless "select"ed otherwise)
return getFolderOrDocument(fInfo.getNodeRef(), parentNodeRef, fInfo.getType(), selectParam, minimalInfo, mapUserInfo); return getFolderOrDocument(fInfo.getNodeRef(), parentNodeRef, fInfo.getType(), selectParam, mapUserInfo);
} }
@Override @Override
@@ -1200,7 +1212,7 @@ public class NodesImpl implements Nodes
private Node createUploadResponse(NodeRef parentNodeRef, NodeRef newFileNodeRef) private Node createUploadResponse(NodeRef parentNodeRef, NodeRef newFileNodeRef)
{ {
return getFolderOrDocument(newFileNodeRef, parentNodeRef, ContentModel.TYPE_CONTENT, Collections.<String>emptyList(), true, null); return getFolderOrDocument(newFileNodeRef, parentNodeRef, ContentModel.TYPE_CONTENT, Collections.<String>emptyList(), null);
} }
private String getStringOrNull(String value) private String getStringOrNull(String value)