Search in sources :

Example 1 with FileFolderServiceType

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;
}
Also used : QName(org.alfresco.service.namespace.QName) FileFolderServiceType(org.alfresco.service.cmr.model.FileFolderServiceType)

Example 2 with FileFolderServiceType

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;
}
Also used : Serializable(java.io.Serializable) FileInfo(org.alfresco.service.cmr.model.FileInfo) QName(org.alfresco.service.namespace.QName) FileFolderServiceType(org.alfresco.service.cmr.model.FileFolderServiceType) Client(org.alfresco.util.FileFilterMode.Client)

Example 3 with FileFolderServiceType

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);
            }
        }
    }
}
Also used : FileInfo(org.alfresco.service.cmr.model.FileInfo) QName(org.alfresco.service.namespace.QName) FileFolderServiceType(org.alfresco.service.cmr.model.FileFolderServiceType) PagingRequest(org.alfresco.query.PagingRequest)

Example 4 with FileFolderServiceType

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));
        }
    }
}
Also used : Path(org.alfresco.service.cmr.repository.Path) QName(org.alfresco.service.namespace.QName) FileFolderServiceType(org.alfresco.service.cmr.model.FileFolderServiceType) ChildAssociationRef(org.alfresco.service.cmr.repository.ChildAssociationRef)

Example 5 with FileFolderServiceType

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);
    }
}
Also used : Path(org.alfresco.service.cmr.repository.Path) NodeRef(org.alfresco.service.cmr.repository.NodeRef) QName(org.alfresco.service.namespace.QName) FileFolderServiceType(org.alfresco.service.cmr.model.FileFolderServiceType)

Aggregations

FileFolderServiceType (org.alfresco.service.cmr.model.FileFolderServiceType)10 QName (org.alfresco.service.namespace.QName)9 NodeRef (org.alfresco.service.cmr.repository.NodeRef)4 Serializable (java.io.Serializable)3 FileInfo (org.alfresco.service.cmr.model.FileInfo)3 ChildAssociationRef (org.alfresco.service.cmr.repository.ChildAssociationRef)2 Path (org.alfresco.service.cmr.repository.Path)2 HashMap (java.util.HashMap)1 Locale (java.util.Locale)1 PagingRequest (org.alfresco.query.PagingRequest)1 FileExistsException (org.alfresco.service.cmr.model.FileExistsException)1 DuplicateChildNodeNameException (org.alfresco.service.cmr.repository.DuplicateChildNodeNameException)1 Client (org.alfresco.util.FileFilterMode.Client)1