@Override public List<Document> getVersionsOfDocument(final String documentId) throws DocumentNotFoundException { final DocumentVersion currentDocumentVersion = getDbSession().getDocumentVersion(Long.valueOf(documentId)); final DocumentDescriptor documentDescriptor = getDbSession().getDocumentDescriptor( Long.valueOf(currentDocumentVersion.getVersionSeriesId())); final List<DocumentVersion> documentVersions = getDbSession().getDocumentVersions(documentDescriptor.getId()); final List<Document> documents = new ArrayList<Document>(documentVersions.size()); for (final DocumentVersion documentVersion : documentVersions) { documents.add(toDocument(documentDescriptor, documentVersion)); } return documents; }
@Override public Document getDocument(final String documentId) throws DocumentNotFoundException { final DocumentVersion documentVersion = getDbSession().getDocumentVersion(Long.valueOf(documentId)); if (documentVersion == null) { throw new DocumentNotFoundException(documentId); } final DocumentDescriptor documentDescriptor = getDbSession().getDocumentDescriptor( Long.valueOf(documentVersion.getVersionSeriesId())); return toDocument(documentDescriptor, documentVersion); }
private Document createDocumentVersionUsingDescriptor(final String fileName, final String contentMimeType, final byte[] fileContent, final boolean isMajorVersion, final String author, final Date creationDate, final Date lastModificationDate, final DocumentDescriptor documentDescriptor) throws DocumentationCreationException { final long length = fileContent == null ? 0 : fileContent.length; final long versionLabel = documentDescriptor.getLastVersionLabel() + 1; final DocumentVersionImpl documentVersionImpl = new DocumentVersionImpl(author, creationDate, lastModificationDate, isMajorVersion, documentDescriptor.getId(), fileName, contentMimeType, length, versionLabel); documentStorageService.storeDocumentContent(documentVersionImpl, fileContent); getDbSession().save(documentVersionImpl); documentDescriptor.setLastVersionId(Long.valueOf(documentVersionImpl.getId())); documentDescriptor.setLastVersionLabel(versionLabel); return toDocument(documentDescriptor, documentVersionImpl); }