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);
}
}
}
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);
}
}
}
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;
}
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);
}
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);
}
}
Aggregations