mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
Merged 5.0.N (5.0.3) to 5.1.N (5.1.1)
113684 adavis: Merged V4.2-BUG-FIX (4.2.6) to 5.0.N (5.0.3) (PARTIAL MERGE) 113603 cturlica: Merged DEV to V4.2-BUG-FIX (4.2.6) 113602 cturlica: MNT-14504: Cloud pull process not working after large delete git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.1.N/root@113727 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -3003,6 +3003,67 @@ public abstract class AbstractNodeDAOImpl implements NodeDAO, BatchingDAO
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Pair<Long, AssociationRef>> getTargetAssocsByPropertyValue(Long sourceNodeId, QName typeQName, QName propertyQName, Serializable propertyValue)
|
||||
{
|
||||
Long typeQNameId = null;
|
||||
if (typeQName != null)
|
||||
{
|
||||
Pair<Long, QName> typeQNamePair = qnameDAO.getQName(typeQName);
|
||||
if (typeQNamePair == null)
|
||||
{
|
||||
// No such QName
|
||||
return Collections.emptyList();
|
||||
}
|
||||
typeQNameId = typeQNamePair.getFirst();
|
||||
}
|
||||
|
||||
Long propertyQNameId = null;
|
||||
NodePropertyValue nodeValue = null;
|
||||
if (propertyQName != null)
|
||||
{
|
||||
|
||||
Pair<Long, QName> propQNamePair = qnameDAO.getQName(propertyQName);
|
||||
if (propQNamePair == null)
|
||||
{
|
||||
// No such QName
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
propertyQNameId = propQNamePair.getFirst();
|
||||
|
||||
PropertyDefinition propertyDef = dictionaryService.getProperty(propertyQName);
|
||||
|
||||
nodeValue = nodePropertyHelper.makeNodePropertyValue(propertyDef, propertyValue);
|
||||
if (nodeValue != null)
|
||||
{
|
||||
switch (nodeValue.getPersistedType())
|
||||
{
|
||||
case 1: // Boolean
|
||||
case 3: // long
|
||||
case 5: // double
|
||||
case 6: // string
|
||||
// no floats due to the range errors testing equality on a float.
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("method not supported for persisted value type " + nodeValue.getPersistedType());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<NodeAssocEntity> nodeAssocEntities = selectNodeAssocsBySourceAndPropertyValue(sourceNodeId, typeQNameId, propertyQNameId, nodeValue);
|
||||
|
||||
// Create custom result
|
||||
List<Pair<Long, AssociationRef>> results = new ArrayList<Pair<Long, AssociationRef>>(nodeAssocEntities.size());
|
||||
for (NodeAssocEntity nodeAssocEntity : nodeAssocEntities)
|
||||
{
|
||||
Long assocId = nodeAssocEntity.getId();
|
||||
AssociationRef assocRef = nodeAssocEntity.getAssociationRef(qnameDAO);
|
||||
results.add(new Pair<Long, AssociationRef>(assocId, assocRef));
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pair<Long, AssociationRef> getNodeAssocOrNull(Long assocId)
|
||||
{
|
||||
@@ -4878,6 +4939,7 @@ public abstract class AbstractNodeDAOImpl implements NodeDAO, BatchingDAO
|
||||
protected abstract int deleteNodeAssocs(List<Long> ids);
|
||||
protected abstract List<NodeAssocEntity> selectNodeAssocs(Long nodeId);
|
||||
protected abstract List<NodeAssocEntity> selectNodeAssocsBySource(Long sourceNodeId, Long typeQNameId);
|
||||
protected abstract List<NodeAssocEntity> selectNodeAssocsBySourceAndPropertyValue(Long sourceNodeId, Long typeQNameId, Long propertyQNameId, NodePropertyValue nodeValue);
|
||||
protected abstract List<NodeAssocEntity> selectNodeAssocsByTarget(Long targetNodeId, Long typeQNameId);
|
||||
protected abstract NodeAssocEntity selectNodeAssocById(Long assocId);
|
||||
protected abstract int selectNodeAssocMaxIndex(Long sourceNodeId, Long assocTypeQNameId);
|
||||
|
Reference in New Issue
Block a user