mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged HEAD (5.2) to 5.2.N (5.2.1)
127579 jkaabimofrad: Merged API-STRIKES-BACK (5.2.0) to HEAD (5.2) 126567 jvonka: Node Associations - further updates - for child assocs, do not expose assoc child qname (nominally like file/folder for primary child assoc) - additional api tests (+ve & -ve) for peer assocs & secondary child assocs - RA-745, RA-920, RA-921, RA-930, RA-742, RA-918, RA-919 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@127672 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -36,6 +36,7 @@ import org.alfresco.rest.framework.resource.parameters.where.Query;
|
||||
import org.alfresco.rest.framework.resource.parameters.where.QueryHelper;
|
||||
import org.alfresco.rest.workflow.api.impl.MapBasedQueryWalker;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||
import org.alfresco.service.cmr.repository.AssociationExistsException;
|
||||
import org.alfresco.service.cmr.repository.AssociationRef;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
@@ -70,6 +71,7 @@ public class AbstractNodeRelation implements InitializingBean
|
||||
protected ServiceRegistry sr;
|
||||
protected NodeService nodeService;
|
||||
protected NamespaceService namespaceService;
|
||||
protected DictionaryService dictionaryService;
|
||||
protected Nodes nodes;
|
||||
|
||||
public void setNodes(Nodes nodes)
|
||||
@@ -90,21 +92,42 @@ public class AbstractNodeRelation implements InitializingBean
|
||||
|
||||
this.nodeService = sr.getNodeService();
|
||||
this.namespaceService = sr.getNamespaceService();
|
||||
this.dictionaryService = sr.getDictionaryService();
|
||||
}
|
||||
|
||||
protected QName getAssocType(String prefixAssocTypeStr, boolean mandatory)
|
||||
protected QName getAssocType(String prefixAssocTypeStr)
|
||||
{
|
||||
if (mandatory && ((prefixAssocTypeStr == null) || prefixAssocTypeStr.isEmpty()))
|
||||
return getAssocType(prefixAssocTypeStr, true, true);
|
||||
}
|
||||
|
||||
protected QName getAssocType(String prefixAssocTypeStr, boolean mandatory, boolean validate)
|
||||
{
|
||||
QName assocType = null;
|
||||
|
||||
if ((prefixAssocTypeStr != null) && (! prefixAssocTypeStr.isEmpty()))
|
||||
{
|
||||
assocType = QName.createQName(prefixAssocTypeStr, namespaceService);
|
||||
|
||||
if (validate)
|
||||
{
|
||||
if (dictionaryService.getAssociation(assocType) == null)
|
||||
{
|
||||
throw new InvalidArgumentException("Unknown filter assocType: "+prefixAssocTypeStr);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else if (mandatory)
|
||||
{
|
||||
throw new InvalidArgumentException("Missing "+PARAM_ASSOC_TYPE);
|
||||
}
|
||||
|
||||
return QName.createQName(prefixAssocTypeStr, namespaceService);
|
||||
return assocType;
|
||||
}
|
||||
|
||||
protected QNamePattern getAssocTypeFromWhereElseAll(Parameters parameters)
|
||||
{
|
||||
QNamePattern assocTypeQNameParam = RegexQNamePattern.MATCH_ALL;
|
||||
QNamePattern assocTypeQNamePattern = RegexQNamePattern.MATCH_ALL;
|
||||
|
||||
Query q = parameters.getQuery();
|
||||
if (q != null)
|
||||
@@ -115,10 +138,10 @@ public class AbstractNodeRelation implements InitializingBean
|
||||
String assocTypeQNameStr = propertyWalker.getProperty(PARAM_ASSOC_TYPE, WhereClauseParser.EQUALS, String.class);
|
||||
if (assocTypeQNameStr != null)
|
||||
{
|
||||
assocTypeQNameParam = getAssocType(assocTypeQNameStr, true);
|
||||
assocTypeQNamePattern = getAssocType(assocTypeQNameStr);
|
||||
}
|
||||
}
|
||||
|
||||
return assocTypeQNameParam;
|
||||
return assocTypeQNamePattern;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user