Ejemplo n.º 1
0
  @Override
  public void deleteObject(String objectId, Boolean allVersions, String user) {
    StoredObject obj = fStoredObjectMap.get(objectId);

    if (null == obj) {
      throw new CmisObjectNotFoundException(
          "Cannot delete object with id  " + objectId + ". Object does not exist.");
    }

    if (obj instanceof FolderImpl) {
      deleteFolder(objectId, user);
    } else if (obj instanceof DocumentVersion) {
      DocumentVersion vers = (DocumentVersion) obj;
      VersionedDocument parentDoc = vers.getParentDocument();
      boolean otherVersionsExists;
      if (allVersions != null && allVersions) {
        otherVersionsExists = false;
        List<DocumentVersion> allVers = parentDoc.getAllVersions();
        for (DocumentVersion ver : allVers) {
          fStoredObjectMap.remove(ver.getId());
        }
      } else {
        fStoredObjectMap.remove(objectId);
        otherVersionsExists = parentDoc.deleteVersion(vers);
      }

      if (!otherVersionsExists) {
        fStoredObjectMap.remove(parentDoc.getId());
      }
    } else {
      fStoredObjectMap.remove(objectId);
    }
  }