private Document createDocument(final String name, final ProcessDefinitionUUID definitionUUID,
final ProcessInstanceUUID instanceUUID, final String fileName, final String contentMimeType,
final byte[] fileContent, final boolean metaDocument, final String author, final Date creationDate,
final Date lastModificationDate) throws DocumentationCreationException, DocumentAlreadyExistsException {
long nbOfDocuments = 0;
if (instanceUUID != null) {
nbOfDocuments = getDbSession().hasDocuments(instanceUUID, name, metaDocument);
} else {
nbOfDocuments = getDbSession().hasDocuments(definitionUUID, name, metaDocument);
}
if (nbOfDocuments > 0) {
throw new DocumentAlreadyExistsException("DAEE", name);
}
final DocumentDescriptorImpl documentDescriptorImpl = new DocumentDescriptorImpl(name, definitionUUID,
instanceUUID, metaDocument, 0);
getDbSession().save(documentDescriptorImpl);
final DocumentDescriptorMappingImpl docDescMapping = new DocumentDescriptorMappingImpl(
documentDescriptorImpl.getId(), definitionUUID, instanceUUID);
getDbSession().save(docDescMapping);
return createDocumentVersionUsingDescriptor(fileName, contentMimeType, fileContent, true, author, creationDate,
lastModificationDate, documentDescriptorImpl);
}