use of org.alfresco.sync.events.types.NodeMovedEvent in project alfresco-repository by Alfresco.
the class EventsServiceImpl method nodeMoved.
@Override
public void nodeMoved(ChildAssociationRef oldChildAssocRef, ChildAssociationRef newChildAssocRef) {
NodeRef nodeRef = newChildAssocRef.getChildRef();
NodeInfo nodeInfo = getNodeInfo(nodeRef, NodeMovedEvent.EVENT_TYPE);
if (nodeInfo.checkNodeInfo()) {
String username = AuthenticationUtil.getFullyAuthenticatedUser();
String networkId = TenantUtil.getCurrentDomain();
String objectId = nodeInfo.getNodeId();
String siteId = nodeInfo.getSiteId();
String txnId = AlfrescoTransactionSupport.getTransactionId();
long timestamp = System.currentTimeMillis();
Long modificationTime = nodeInfo.getModificationTimestamp();
String nodeType = nodeInfo.getType().toPrefixString(namespaceService);
NodeRef oldParentNodeRef = oldChildAssocRef.getParentRef();
NodeRef newParentNodeRef = newChildAssocRef.getParentRef();
NodeRef oldNodeRef = oldChildAssocRef.getChildRef();
NodeRef newNodeRef = newChildAssocRef.getChildRef();
String oldParentNodeName = (String) nodeService.getProperty(oldParentNodeRef, ContentModel.PROP_NAME);
String newParentNodeName = (String) nodeService.getProperty(newParentNodeRef, ContentModel.PROP_NAME);
String oldNodeName = (String) nodeService.getProperty(oldNodeRef, ContentModel.PROP_NAME);
String newNodeName = (String) nodeService.getProperty(newNodeRef, ContentModel.PROP_NAME);
List<Path> newParentPaths = nodeService.getPaths(newParentNodeRef, false);
List<String> newPaths = getPaths(newParentPaths, Arrays.asList(newParentNodeName, newNodeName));
// renames are handled by an onUpdateProperties callback, we just deal with real moves here.
if (!oldParentNodeRef.equals(newParentNodeRef)) {
List<List<String>> toParentNodeIds = getNodeIds(newParentPaths);
List<Path> oldParentPaths = nodeService.getPaths(oldParentNodeRef, false);
List<String> previousPaths = getPaths(oldParentPaths, Arrays.asList(oldParentNodeName, oldNodeName));
List<List<String>> previousParentNodeIds = getNodeIds(oldParentPaths);
Set<String> aspects = nodeInfo.getAspectsAsStrings();
Map<String, Serializable> properties = nodeInfo.getProperties();
Client alfrescoClient = getAlfrescoClient(nodeInfo.getClient());
Event event = new NodeMovedEvent(nextSequenceNumber(), oldNodeName, newNodeName, txnId, timestamp, networkId, siteId, objectId, nodeType, previousPaths, previousParentNodeIds, username, modificationTime, newPaths, toParentNodeIds, alfrescoClient, aspects, properties);
sendEvent(event);
}
}
}
Aggregations