@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); } }
@Override public List<StoredObject> getCheckedOutDocuments( String orderBy, String user, IncludeRelationships includeRelationships) { List<StoredObject> res = new ArrayList<StoredObject>(); for (StoredObject so : fStoredObjectMap.values()) { if (so instanceof VersionedDocument) { VersionedDocument verDoc = (VersionedDocument) so; if (verDoc.isCheckedOut() && hasReadAccess(user, verDoc)) { res.add(verDoc.getPwc()); } } } return res; }