use of org.alfresco.service.cmr.model.FileFolderServiceType in project alfresco-repository by Alfresco.
the class ActivityPosterImpl method isFolder.
private boolean isFolder(NodeRef nodeRef) {
QName typeQName = nodeService.getType(nodeRef);
FileFolderServiceType type = fileFolderService.getType(typeQName);
boolean isFolder = type.equals(FileFolderServiceType.FOLDER);
return isFolder;
}
use of org.alfresco.service.cmr.model.FileFolderServiceType in project alfresco-repository by Alfresco.
the class FileFolderServiceImpl method toFileInfo.
/**
* Helper method to convert a node reference instance to a file info
*/
private FileInfo toFileInfo(NodeRef nodeRef, boolean addTranslations) throws InvalidTypeException {
// Get the file attributes
Map<QName, Serializable> properties = nodeService.getProperties(nodeRef);
// Is it a folder
QName typeQName = nodeService.getType(nodeRef);
FileFolderServiceType type = getType(typeQName);
boolean isFolder = type.equals(FileFolderServiceType.FOLDER);
boolean isHidden = false;
Client client = FileFilterMode.getClient();
if (hiddenAspect.getVisibility(client, nodeRef) == Visibility.HiddenAttribute) {
isHidden = true;
}
// Construct the file info and add to the results
FileInfo fileInfo = new FileInfoImpl(nodeRef, typeQName, isFolder, isHidden, properties);
// Done
return fileInfo;
}
use of org.alfresco.service.cmr.model.FileFolderServiceType in project alfresco-repository by Alfresco.
the class HiddenAspect method applyHidden.
private void applyHidden(NodeRef nodeRef, HiddenFileInfo filter, boolean checkChildren) {
if (!hasHiddenAspect(nodeRef)) {
addHiddenAspect(nodeRef, filter);
} else {
nodeService.setProperty(nodeRef, ContentModel.PROP_VISIBILITY_MASK, filter.getVisibilityMask());
nodeService.setProperty(nodeRef, ContentModel.PROP_CASCADE_HIDDEN, filter.cascadeHiddenAspect());
nodeService.setProperty(nodeRef, ContentModel.PROP_CASCADE_INDEX_CONTROL, filter.cascadeIndexControlAspect());
}
if (!hasIndexControlAspect(nodeRef)) {
addIndexControlAspect(nodeRef);
}
QName typeQName = nodeService.getType(nodeRef);
FileFolderServiceType type = fileFolderService.getType(typeQName);
boolean isFolder = type.equals(FileFolderServiceType.FOLDER) || type.equals(FileFolderServiceType.SYSTEM_FOLDER);
if (isFolder && checkChildren && (filter.cascadeHiddenAspect() || filter.cascadeIndexControlAspect())) {
PagingRequest pagingRequest = new PagingRequest(0, Integer.MAX_VALUE, null);
PagingResults<FileInfo> results = fileFolderService.list(nodeRef, true, true, null, null, pagingRequest);
List<FileInfo> files = results.getPage();
// already has the hidden aspect applied (it may have been applied for a different pattern).
for (FileInfo file : files) {
behaviourFilter.disableBehaviour(file.getNodeRef(), ContentModel.ASPECT_LOCKABLE);
try {
applyHidden(file, filter);
} finally {
behaviourFilter.enableBehaviour(file.getNodeRef(), ContentModel.ASPECT_LOCKABLE);
}
}
}
}
use of org.alfresco.service.cmr.model.FileFolderServiceType in project alfresco-repository by Alfresco.
the class NodeMonitor method onUpdateProperties.
/**
* Update properties event
*
* @param nodeRef NodeRef
*/
public void onUpdateProperties(NodeRef nodeRef, Map<QName, Serializable> before, Map<QName, Serializable> after) {
if (nodeRef.getStoreRef().equals(m_storeRef) == false) {
return;
}
// Check if the node is a file/folder
QName nodeType = m_nodeService.getType(nodeRef);
FileFolderServiceType fType = m_fileFolderService.getType(nodeType);
if (fType != FileFolderServiceType.INVALID) {
// Check if there has been a lock change
String beforeLock = (String) before.get(ContentModel.PROP_LOCK_TYPE);
String afterLock = (String) after.get(ContentModel.PROP_LOCK_TYPE);
String beforeName = (String) before.get(ContentModel.PROP_NAME);
String afterName = (String) after.get(ContentModel.PROP_NAME);
if ((beforeLock != null && afterLock == null) || (beforeLock == null && afterLock != null)) {
Path nodePath = m_nodeService.getPath(nodeRef);
String relPath = nodePath.toDisplayPath(m_nodeService, m_permissionService);
// Process the lock update first
fireNodeEvent(new LockNodeEvent(fType, nodeRef, relPath, beforeName, beforeLock, afterLock));
}
// Check if node has been renamed
if (beforeName != null && !beforeName.equals(afterName)) {
// Yes Node has been renamed in the same folder
ChildAssociationRef childAssocRef = m_nodeService.getPrimaryParent(nodeRef);
String relPath2 = buildRelativePathString(childAssocRef.getParentRef(), beforeName);
String relPath3 = buildRelativePathString(childAssocRef.getParentRef(), afterName);
fireNodeEvent(new MoveNodeEvent(fType, nodeRef, relPath2, relPath3));
}
}
}
use of org.alfresco.service.cmr.model.FileFolderServiceType in project alfresco-repository by Alfresco.
the class NodeMonitor method onCreateNode.
/**
* Create node event
*
* @param childAssocRef ChildAssociationRef
*/
public void onCreateNode(ChildAssociationRef childAssocRef) {
// Check if the node is a file/folder
NodeRef nodeRef = childAssocRef.getChildRef();
if (nodeRef.getStoreRef().equals(m_storeRef) == false) {
// different store so irrelevant
return;
}
QName nodeType = m_nodeService.getType(nodeRef);
FileFolderServiceType fType = m_fileFolderService.getType(nodeType);
if (fType != FileFolderServiceType.INVALID) {
// Node is not INVALID - therefore its VALID
Path nodePath = m_nodeService.getPath(nodeRef);
String relPath = nodePath.toDisplayPath(m_nodeService, m_permissionService);
String fName = (String) m_nodeService.getProperty(nodeRef, ContentModel.PROP_NAME);
if (logger.isDebugEnabled()) {
logger.debug("OnCreateNode: nodeRef=" + nodeRef + ", name=" + fName + ", path=" + relPath);
}
// Create an event to process the node creation
NodeEvent nodeEvent = new CreateNodeEvent(fType, nodeRef, relPath, fName);
// Store the event in the transaction until committed, and register the transaction listener
fireNodeEvent(nodeEvent);
}
}
Aggregations