예제 #1
0
 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;
 }
예제 #2
0
 @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();
   }
 }
예제 #3
0
  @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;
  }
예제 #4
0
 @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();
   }
 }
예제 #5
0
  @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;
  }