@Override public boolean deleteDocumentFile(DatabaseDocument<MemoryType> d, String fileName) { for (DocumentFile<MemoryType> f : files) { if (f.getDocumentId().equals(d.getID()) && f.getFileName().equals(fileName)) { files.remove(f); return true; } } return false; }
@Override public List<String> getDocumentFileNames(DatabaseDocument<MemoryType> d) { ArrayList<String> list = new ArrayList<String>(); for (DocumentFile<MemoryType> f : files) { if (f.getDocumentId().equals(d.getID())) { list.add(f.getFileName()); } } return list; }
private String getFileUrl(DocumentFile<Local> df) throws UnsupportedEncodingException { return getFileUrl(df.getFileName(), df.getDocumentId()); }
@Override public DocumentFile<MemoryType> getDocumentFile( DatabaseDocument<MemoryType> d, String fileName) { for (DocumentFile<MemoryType> f : files) { if (f.getDocumentId().getID().equals(d.getID().getID()) && f.getFileName().equals(fileName)) { try { return copy(f); } catch (IOException e) { logger.error("Error copying the streams", e); } } } return null; }
private DocumentFile<MemoryType> copy(DocumentFile<MemoryType> df) throws IOException { String s = IOUtils.toString(df.getStream(), df.getEncoding()); df.getStream().close(); df.setStream(IOUtils.toInputStream(s, df.getEncoding())); return new DocumentFile<MemoryType>(df.getDocumentId(), df.getFileName(), IOUtils.toInputStream(s, df.getEncoding()), df.getSavedByStage(), df.getUploadDate()); }
private void handleSaveFile(HttpRequest request, HttpResponse response) { try { DocumentFile<T> df = getDocumentFile(request); if (df == null) { HttpResponseWriter.printBadRequestContent(response); } DatabaseDocument<T> md = io.getDocumentById(df.getDocumentId()); if (md == null) { HttpResponseWriter.printNoDocument(response); return; } io.write(df); HttpResponseWriter.printOk(response); } catch (Exception e) { logger.error("An error occurred during file save", e); HttpResponseWriter.printUnhandledException(response, e); } }
QueryBuilder qb = QueryBuilder.start() .put(DOCUMENT_KEY) .is(df.getDocumentId().getID()) .and(FILENAME_KEY) .is(df.getFileName()); input.put(DOCUMENT_KEY, df.getDocumentId().getID()); input.put(ENCODING_KEY, df.getEncoding()); input.put(MIMETYPE_KEY, df.getMimetype());