예제 #1
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;
  }