package com.marklogic.client.file; import com.marklogic.client.document.DocumentWriteOperation; import com.marklogic.client.io.DocumentMetadataHandle; import com.marklogic.client.io.FileHandle; import com.marklogic.client.io.Format; import com.marklogic.client.io.marker.AbstractWriteHandle; import com.marklogic.client.io.marker.DocumentMetadataWriteHandle; import java.io.File; /** * Encapsulates a file that should be written to MarkLogic as a single document. Implements DocumentWriteOperation so * that it can be easily written via the Java Client API. */ public class DocumentFile implements DocumentWriteOperation { private String uri; private File file; private Format format; private DocumentMetadataHandle documentMetadata; public DocumentFile(String uri, File file) { this.uri = uri; this.file = file; this.documentMetadata = new DocumentMetadataHandle(); } public String getUri() { return uri; } public File getFile() { return file; } public String getFileExtension() { String name = file.getName(); int pos = name.lastIndexOf('.'); return pos < 0 ? name : name.substring(pos + 1); } @Override public OperationType getOperationType() { return OperationType.DOCUMENT_WRITE; } @Override public DocumentMetadataWriteHandle getMetadata() { return documentMetadata; } @Override public AbstractWriteHandle getContent() { FileHandle h = new FileHandle(file); return format != null ? h.withFormat(format) : h; } public void setFormat(Format format) { this.format = format; } public DocumentMetadataHandle getDocumentMetadata() { return documentMetadata; } public void setDocumentMetadata(DocumentMetadataHandle documentMetadata) { this.documentMetadata = documentMetadata; } public void setUri(String uri) { this.uri = uri; } public void setFile(File file) { this.file = file; } public Format getFormat() { return format; } }