Merged BRANCHES/V3.4 to HEAD:

23345: Merged BRANCHES/DEV/DC33E to BRANCHES/V3.4:
        23305: Resolve ALF-5324: SDK is missing alfresco-share-3.4.a.jar
        23306: Resolve ALF-5321: Jar generated in SDK example "CustomAspect" is not correct.
        23307: Resolve ALF-5294: Internal Target throws an exception when try to edit it
        23308: Resolve ALF-5332: Exception in SDK CustomAspect
        23309: Resolve ALF-5162: CMIS Web Services: getTypeDescendants() returns a flat list, not a tree
        23326: Resolve ALF-5039: Change events for documents creation are not returned
   23356: Fix to continuous.xml
   23482: Resolve ALF-5438: Required flag is wrong for most CMIS spec defined property definitions
   23488: Resolve ALF-5439: Updatability of cmis:contentStreamFileName must be read-only
   23501: Resolve ALF-5440: Some property definitions don't have descriptions
   23502: Resolve ALF-5534: Subtypes of F:cm:systemfolder should not be creatable

CMIS fixes for cmis.alfresco.com.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@23532 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
David Caruana
2010-11-10 10:38:35 +00:00
parent 88c50848d6
commit 795373df80
2 changed files with 8 additions and 8 deletions

View File

@@ -634,7 +634,6 @@ public class DMRepositoryServicePort extends DMAbstractServicePort implements Re
{
throw ExceptionUtil.createCmisException("Invalid depth '0'", EnumServiceException.INVALID_ARGUMENT);
}
List<CmisTypeContainer> result = new LinkedList<CmisTypeContainer>();
CMISTypeDefinition typeDef;
try
{
@@ -644,6 +643,7 @@ public class DMRepositoryServicePort extends DMAbstractServicePort implements Re
{
throw ExceptionUtil.createCmisException(e);
}
List<CmisTypeContainer> result = new LinkedList<CmisTypeContainer>();
getTypeDescendants(typeDef, result, includePropertyDefinitions != null && includePropertyDefinitions, 1, depthLong);
return result;
}
@@ -651,15 +651,14 @@ public class DMRepositoryServicePort extends DMAbstractServicePort implements Re
private void getTypeDescendants(CMISTypeDefinition parent, List<CmisTypeContainer> result, boolean includePropertyDefs, long depth, long maxDepth) throws CmisException
{
Collection<CMISTypeDefinition> subtypes = parent == null ? cmisService.getBaseTypes() : parent.getSubTypes(false);
for (CMISTypeDefinition typeDef : subtypes)
for (CMISTypeDefinition subtype : subtypes)
{
result.add(createTypeContainer(typeDef, includePropertyDefs));
}
if (maxDepth == -1 || depth + 1 <= maxDepth)
{
for (CMISTypeDefinition typeDef : subtypes)
CmisTypeContainer type = createTypeContainer(subtype, includePropertyDefs);
result.add(type);
if (maxDepth == -1 || depth < maxDepth)
{
getTypeDescendants(typeDef, result, includePropertyDefs, depth + 1, maxDepth);
List<CmisTypeContainer> children = type.getChildren();
getTypeDescendants(subtype, children, includePropertyDefs, depth + 1, maxDepth);
}
}
}