Search in sources :

Example 6 with FileFolderServiceType

use of org.alfresco.service.cmr.model.FileFolderServiceType in project alfresco-repository by Alfresco.

the class NodeMonitor method onMoveNode.

/**
 * Move node event
 *
 * @param oldChildAssocRef ChildAssociationRef
 * @param newChildAssocRef ChildAssociationRef
 */
public void onMoveNode(ChildAssociationRef oldChildAssocRef, ChildAssociationRef newChildAssocRef) {
    // Check if the node is a file/folder, and for our store
    NodeRef oldNodeRef = oldChildAssocRef.getChildRef();
    if (oldNodeRef.getStoreRef().equals(m_storeRef) == false) {
        return;
    }
    QName nodeType = m_nodeService.getType(oldNodeRef);
    FileFolderServiceType fType = m_fileFolderService.getType(nodeType);
    if (fType != FileFolderServiceType.INVALID) {
        // Get the full path to the file/folder node
        String fName = (String) m_nodeService.getProperty(oldNodeRef, ContentModel.PROP_NAME);
        // Build the share relative path to the node
        String relPath = buildRelativePathString(oldChildAssocRef.getParentRef(), fName);
        String relPath2 = buildRelativePathString(newChildAssocRef.getParentRef(), fName);
        if (logger.isDebugEnabled())
            logger.debug("OnMoveNode: nodeRef=" + oldNodeRef + ", relPath=" + relPath);
        if (relPath.startsWith(m_rootPath)) {
            // Create a move event
            NodeEvent nodeEvent = new MoveNodeEvent(fType, oldNodeRef, relPath, relPath2);
            // Store the event in the transaction until committed, and register the transaction listener
            fireNodeEvent(nodeEvent);
        }
    }
}
Also used : NodeRef(org.alfresco.service.cmr.repository.NodeRef) QName(org.alfresco.service.namespace.QName) FileFolderServiceType(org.alfresco.service.cmr.model.FileFolderServiceType)

Example 7 with FileFolderServiceType

use of org.alfresco.service.cmr.model.FileFolderServiceType in project alfresco-repository by Alfresco.

the class NodeMonitor method beforeDeleteNode.

/**
 * Before delete node event
 *
 * @param nodeRef NodeRef
 */
public void beforeDeleteNode(NodeRef nodeRef) {
    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) {
        StringBuilder pathStr = calculateDisplayPath(nodeRef);
        String relPath = (null != pathStr) ? (pathStr.toString()) : ("");
        if (relPath.startsWith(m_rootPath)) {
            // Create a delete event
            NodeEvent nodeEvent = new DeleteNodeEvent(fType, nodeRef, relPath);
            fireNodeEvent(nodeEvent);
            if (logger.isDebugEnabled())
                logger.debug("BeforeDeleteNode: nodeRef=" + nodeRef + ", relPath=" + relPath);
        }
    }
}
Also used : QName(org.alfresco.service.namespace.QName) FileFolderServiceType(org.alfresco.service.cmr.model.FileFolderServiceType)

Example 8 with FileFolderServiceType

use of org.alfresco.service.cmr.model.FileFolderServiceType in project alfresco-repository by Alfresco.

the class FileFolderServiceImpl method createImpl.

private FileInfo createImpl(NodeRef parentNodeRef, String name, QName typeQName, QName assocQName) throws FileExistsException {
    // set up initial properties
    Map<QName, Serializable> properties = new HashMap<QName, Serializable>(11);
    properties.put(ContentModel.PROP_NAME, (Serializable) name);
    // Check the type is valid for file/folder service
    FileFolderServiceType type = getType(typeQName);
    switch(type) {
        case SYSTEM_FOLDER:
            throw new InvalidTypeException("System Folders are not handled by this service :" + typeQName);
        case INVALID:
            throw new InvalidTypeException("Type is not handled by this service: " + typeQName);
        case FILE:
        case FOLDER:
        default:
    }
    // create the node
    if (assocQName == null) {
        assocQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, QName.createValidLocalName(name));
    }
    ChildAssociationRef assocRef = null;
    try {
        assocRef = nodeService.createNode(parentNodeRef, ContentModel.ASSOC_CONTAINS, assocQName, typeQName, properties);
    } catch (DuplicateChildNodeNameException e) {
        throw new FileExistsException(parentNodeRef, name);
    }
    NodeRef nodeRef = assocRef.getChildRef();
    FileInfo fileInfo = toFileInfo(nodeRef, true);
    // done
    if (logger.isDebugEnabled()) {
        logger.debug("Created: \n" + "   parent: " + parentNodeRef + "\n" + "   created: " + fileInfo);
    }
    return fileInfo;
}
Also used : DuplicateChildNodeNameException(org.alfresco.service.cmr.repository.DuplicateChildNodeNameException) NodeRef(org.alfresco.service.cmr.repository.NodeRef) Serializable(java.io.Serializable) FileInfo(org.alfresco.service.cmr.model.FileInfo) HashMap(java.util.HashMap) QName(org.alfresco.service.namespace.QName) FileFolderServiceType(org.alfresco.service.cmr.model.FileFolderServiceType) ChildAssociationRef(org.alfresco.service.cmr.repository.ChildAssociationRef) FileExistsException(org.alfresco.service.cmr.model.FileExistsException)

Example 9 with FileFolderServiceType

use of org.alfresco.service.cmr.model.FileFolderServiceType in project alfresco-repository by Alfresco.

the class VirtualFileFolderServiceExtension method asFileInfo.

public FileInfo asFileInfo(VirtualStore smartStore, ActualEnvironment environment, Reference reference) throws VirtualizationException {
    Map<QName, Serializable> properties = smartStore.getProperties(reference);
    QName qNameType = smartStore.getType(reference);
    FileFolderServiceType type = getTrait().getType(qNameType);
    boolean isFolder = type.equals(FileFolderServiceType.FOLDER);
    NodeRef nodeRef = reference.toNodeRef();
    return getTrait().createFileInfo(nodeRef, qNameType, isFolder, false, properties);
}
Also used : NodeRef(org.alfresco.service.cmr.repository.NodeRef) Serializable(java.io.Serializable) QName(org.alfresco.service.namespace.QName) FileFolderServiceType(org.alfresco.service.cmr.model.FileFolderServiceType)

Example 10 with FileFolderServiceType

use of org.alfresco.service.cmr.model.FileFolderServiceType in project alfresco-repository by Alfresco.

the class FileFolderServiceImplTest method testGetType.

/**
 * Validates <a href="https://issues.alfresco.com/jira/browse/ALFCOM-2655">ACT-7225</a>
 */
public void testGetType() throws Exception {
    Locale savedLocale = I18NUtil.getContentLocaleOrNull();
    try {
        I18NUtil.setContentLocale(Locale.CANADA);
        FileFolderServiceType type = fileFolderService.getType(ContentModel.TYPE_FOLDER);
        assertEquals("Type incorrect for folder", FileFolderServiceType.FOLDER, type);
    } finally {
        I18NUtil.setContentLocale(savedLocale);
    }
}
Also used : Locale(java.util.Locale) 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