@Override public byte[] getDocumentContent(final String documentStorageId) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); try { return documentService.getDocumentContent(documentStorageId); } catch (final SObjectNotFoundException sbe) { throw new DocumentNotFoundException(sbe); } }
@Override public byte[] getDocumentContent(final String documentStorageId) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); try { return documentService.getDocumentContent(documentStorageId); } catch (final SObjectNotFoundException sbe) { throw new DocumentNotFoundException(sbe); } }
@Override public Document getLastDocument(final long processInstanceId, final String documentName) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); try { return ModelConvertor.toDocument(documentService.getMappedDocument(processInstanceId, documentName), documentService); } catch (final SObjectNotFoundException | SBonitaReadException sbe) { throw new DocumentNotFoundException(sbe); } }
@Override public Document getLastDocument(final long processInstanceId, final String documentName) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); try { return ModelConvertor.toDocument(documentService.getMappedDocument(processInstanceId, documentName), documentService); } catch (final SObjectNotFoundException | SBonitaReadException sbe) { throw new DocumentNotFoundException(sbe); } }
@Override public Document getDocument(final long documentId) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); try { return ModelConvertor.toDocument(documentService.getMappedDocument(documentId), documentService); } catch (final SObjectNotFoundException | SBonitaReadException e) { throw new DocumentNotFoundException(e); } }
@Override public Document getDocument(final long documentId) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); try { return ModelConvertor.toDocument(documentService.getMappedDocument(documentId), documentService); } catch (final SObjectNotFoundException | SBonitaReadException e) { throw new DocumentNotFoundException(e); } }
@Override public void deleteContentOfArchivedDocument(final long archivedDocumentId) throws DocumentException, DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = APIUtils.getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); try { documentService.deleteContentOfArchivedDocument(archivedDocumentId); } catch (final SObjectNotFoundException e) { throw new DocumentNotFoundException("The document with id " + archivedDocumentId + " could not be found", e); } catch (final SBonitaException e) { throw new DocumentException("Unable to delete content of all version of the document " + archivedDocumentId, e); } }
@Override public void deleteContentOfArchivedDocument(final long archivedDocumentId) throws DocumentException, DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = APIUtils.getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); try { documentService.deleteContentOfArchivedDocument(archivedDocumentId); } catch (final SObjectNotFoundException e) { throw new DocumentNotFoundException("The document with id " + archivedDocumentId + " could not be found", e); } catch (final SBonitaException e) { throw new DocumentException("Unable to delete content of all version of the document " + archivedDocumentId, e); } }
@Override public List<Document> getDocumentList(final long processInstanceId, final String name, final int fromIndex, final int numberOfResult) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); final ProcessDefinitionService processDefinitionService = tenantAccessor.getProcessDefinitionService(); final ProcessInstanceService processInstanceService = tenantAccessor.getProcessInstanceService(); final DocumentHelper documentHelper = new DocumentHelper(documentService, processDefinitionService, processInstanceService); try { final List<SMappedDocument> documentList = documentService.getDocumentList(name, processInstanceId, fromIndex, numberOfResult); if (documentList.isEmpty() && !documentHelper.isListDefinedInDefinition(name, processInstanceId)) { throw new DocumentNotFoundException("doc not found"); } return ModelConvertor.toDocuments(documentList, documentService); } catch (final org.bonitasoft.engine.commons.exceptions.SObjectNotFoundException e) { throw new DocumentNotFoundException(e); } catch (final SBonitaReadException e) { throw new RetrieveException(e); } }
@Override public List<Document> getDocumentList(final long processInstanceId, final String name, final int fromIndex, final int numberOfResult) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); final ProcessDefinitionService processDefinitionService = tenantAccessor.getProcessDefinitionService(); final ProcessInstanceService processInstanceService = tenantAccessor.getProcessInstanceService(); final DocumentHelper documentHelper = new DocumentHelper(documentService, processDefinitionService, processInstanceService); try { final List<SMappedDocument> documentList = documentService.getDocumentList(name, processInstanceId, fromIndex, numberOfResult); if (documentList.isEmpty() && !documentHelper.isListDefinedInDefinition(name, processInstanceId)) { throw new DocumentNotFoundException("doc not found"); } return ModelConvertor.toDocuments(documentList, documentService); } catch (final org.bonitasoft.engine.commons.exceptions.SObjectNotFoundException e) { throw new DocumentNotFoundException(e); } catch (final SBonitaReadException e) { throw new RetrieveException(e); } }
@Override public Document getDocumentAtActivityInstanceCompletion(final long activityInstanceId, final String documentName) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); final ActivityInstanceService activityInstanceService = tenantAccessor.getActivityInstanceService(); try { final SAActivityInstance instance = activityInstanceService.getMostRecentArchivedActivityInstance(activityInstanceId); final SMappedDocument document = documentService.getMappedDocument(instance.getRootContainerId(), documentName, instance.getArchiveDate()); return ModelConvertor.toDocument(document, documentService); } catch (final SBonitaException sbe) { throw new DocumentNotFoundException(sbe); } }
@Override public Document getDocumentAtActivityInstanceCompletion(final long activityInstanceId, final String documentName) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); final ActivityInstanceService activityInstanceService = tenantAccessor.getActivityInstanceService(); try { final SAActivityInstance instance = activityInstanceService.getMostRecentArchivedActivityInstance(activityInstanceId); final SMappedDocument document = documentService.getMappedDocument(instance.getRootContainerId(), documentName, instance.getArchiveDate()); return ModelConvertor.toDocument(document, documentService); } catch (final SBonitaException sbe) { throw new DocumentNotFoundException(sbe); } }
@Override public Document getDocumentAtProcessInstantiation(final long processInstanceId, final String documentName) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); final ProcessInstanceService processInstanceService = tenantAccessor.getProcessInstanceService(); final SearchEntitiesDescriptor searchEntitiesDescriptor = tenantAccessor.getSearchEntitiesDescriptor(); try { final GetDocumentByNameAtProcessInstantiation transactionContent = new GetDocumentByNameAtProcessInstantiation(documentService, processInstanceService, tenantAccessor.getProcessDefinitionService(), searchEntitiesDescriptor, processInstanceId, documentName); transactionContent.execute(); final SMappedDocument attachment = transactionContent.getResult(); return ModelConvertor.toDocument(attachment, documentService); } catch (final SBonitaException sbe) { throw new DocumentNotFoundException(sbe); } }
@Override public Document getDocumentAtProcessInstantiation(final long processInstanceId, final String documentName) throws DocumentNotFoundException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); final ProcessInstanceService processInstanceService = tenantAccessor.getProcessInstanceService(); final SearchEntitiesDescriptor searchEntitiesDescriptor = tenantAccessor.getSearchEntitiesDescriptor(); try { final GetDocumentByNameAtProcessInstantiation transactionContent = new GetDocumentByNameAtProcessInstantiation(documentService, processInstanceService, tenantAccessor.getProcessDefinitionService(), searchEntitiesDescriptor, processInstanceId, documentName); transactionContent.execute(); final SMappedDocument attachment = transactionContent.getResult(); return ModelConvertor.toDocument(attachment, documentService); } catch (final SBonitaException sbe) { throw new DocumentNotFoundException(sbe); } }
@Override public Document removeDocument(final long documentId) throws DocumentNotFoundException, DeletionException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); final DocumentHelper documentHelper = new DocumentHelper(documentService, tenantAccessor.getProcessDefinitionService(), tenantAccessor.getProcessInstanceService()); try { final SMappedDocument document = documentService.getMappedDocument(documentId); final int index = document.getIndex(); if (index != -1) { //document is in list final List<SMappedDocument> allDocumentOfTheList = documentHelper.getAllDocumentOfTheList(document.getProcessInstanceId(), document.getName()); for (int i = index + 1; i < allDocumentOfTheList.size(); i++) { documentService.updateDocumentIndex(allDocumentOfTheList.get(i), i - 1); } } documentService.removeCurrentVersion(document); return ModelConvertor.toDocument(document, documentService); } catch (final SObjectNotFoundException e) { throw new DocumentNotFoundException("Unable to delete the document " + documentId + " because it does not exists", e); } catch (final SBonitaException e) { throw new DeletionException("Unable to delete the document " + documentId, e); } }
@Override public Document removeDocument(final long documentId) throws DocumentNotFoundException, DeletionException { final TenantServiceAccessor tenantAccessor = getTenantAccessor(); final DocumentService documentService = tenantAccessor.getDocumentService(); final DocumentHelper documentHelper = new DocumentHelper(documentService, tenantAccessor.getProcessDefinitionService(), tenantAccessor.getProcessInstanceService()); try { final SMappedDocument document = documentService.getMappedDocument(documentId); final int index = document.getIndex(); if (index != -1) { //document is in list final List<SMappedDocument> allDocumentOfTheList = documentHelper.getAllDocumentOfTheList(document.getProcessInstanceId(), document.getName()); for (int i = index + 1; i < allDocumentOfTheList.size(); i++) { documentService.updateDocumentIndex(allDocumentOfTheList.get(i), i - 1); } } documentService.removeCurrentVersion(document); return ModelConvertor.toDocument(document, documentService); } catch (final SObjectNotFoundException e) { throw new DocumentNotFoundException("Unable to delete the document " + documentId + " because it does not exists", e); } catch (final SBonitaException e) { throw new DeletionException("Unable to delete the document " + documentId, e); } }