private void createRootFolder() { FolderImpl rootFolder = new FolderImpl(); rootFolder.setName("RootFolder"); rootFolder.setParentId(null); rootFolder.setTypeId(BaseTypeId.CMIS_FOLDER.value()); rootFolder.setCreatedBy("Admin"); rootFolder.setModifiedBy("Admin"); rootFolder.setModifiedAtNow(); rootFolder.setRepositoryId(fRepositoryId); rootFolder.setAclId(addAcl(InMemoryAcl.getDefaultAcl())); String id = storeObject(rootFolder); rootFolder.setId(id); fRootFolder = rootFolder; }
@Override public void rename(StoredObject so, String newName, String user) { try { lock(); if (so.getId().equals(fRootFolder.getId())) { throw new CmisInvalidArgumentException("Root folder cannot be renamed."); } if (so instanceof Fileable) { for (String folderId : ((Fileable) so).getParentIds()) { Folder folder = (Folder) getObjectById(folderId); if (hasChild(folder, newName)) { throw new CmisNameConstraintViolationException( "Cannot rename object to " + newName + ". This path already exists in parent " + getFolderPath(folder.getId()) + "."); } } } so.setName(newName); } finally { unlock(); } }
@Override public Folder createFolder( String name, Map<String, PropertyData<?>> propMap, String user, Folder parent, List<String> policies, Acl addACEs, Acl removeACEs) { if (null == parent) { throw new CmisInvalidArgumentException("Cannot create root folder."); } else if (hasChild(parent, name)) { throw new CmisNameConstraintViolationException( "Cannot create folder, this name already exists in parent folder."); } FolderImpl folder = new FolderImpl(name, parent.getId()); if (null != propMap) { folder.createSystemBasePropertiesWhenCreated(propMap, user); folder.setCustomProperties(propMap); } folder.setRepositoryId(fRepositoryId); int aclId = getAclId(((FolderImpl) parent), addACEs, removeACEs); folder.setAclId(aclId); if (null != policies) { folder.setAppliedPolicies(policies); } String id = storeObject(folder); folder.setId(id); applyAcl(folder, addACEs, removeACEs); return folder; }
@Override public void move(StoredObject so, Folder oldParent, Folder newParent, String user) { try { if (hasChild(newParent, so.getName())) { throw new CmisInvalidArgumentException( "Cannot move object " + so.getName() + " to folder " + getFolderPath(newParent.getId()) + ". A child with this name already exists."); } lock(); if (so instanceof MultiFiling) { MultiFiling fi = (MultiFiling) so; addParentIntern(fi, newParent); removeParentIntern(fi, oldParent); } else if (so instanceof FolderImpl) { ((FolderImpl) so).setParentId(newParent.getId()); } } finally { unlock(); } }
@Override public Folder toEntityModel() { FolderImpl folderImpl = new FolderImpl(); folderImpl.setFolderId(folderId); folderImpl.setCompanyId(companyId); folderImpl.setUserId(userId); if (userName == null) { folderImpl.setUserName(StringPool.BLANK); } else { folderImpl.setUserName(userName); } if (createDate == Long.MIN_VALUE) { folderImpl.setCreateDate(null); } else { folderImpl.setCreateDate(new Date(createDate)); } if (modifiedDate == Long.MIN_VALUE) { folderImpl.setModifiedDate(null); } else { folderImpl.setModifiedDate(new Date(modifiedDate)); } folderImpl.setAccountId(accountId); if (fullName == null) { folderImpl.setFullName(StringPool.BLANK); } else { folderImpl.setFullName(fullName); } if (displayName == null) { folderImpl.setDisplayName(StringPool.BLANK); } else { folderImpl.setDisplayName(displayName); } folderImpl.setRemoteMessageCount(remoteMessageCount); folderImpl.resetOriginalValues(); return folderImpl; }