001/*
002 * The contents of this file are subject to the license and copyright
003 * detailed in the LICENSE and NOTICE files at the root of the source
004 * tree.
005 */
006package org.fcrepo.kernel.api.operations;
007
008import java.io.InputStream;
009import java.net.URI;
010import java.util.Collection;
011
012/**
013 * An operation for interacting with a non-RDF source resource.
014 *
015 * @author bbpennel
016 */
017public interface NonRdfSourceOperation extends ResourceOperation {
018
019    /**
020     * @return the content stream for a local binary
021     */
022    InputStream getContentStream();
023
024    /**
025     * @return the handling method for external content in this resource
026     */
027    String getExternalHandling();
028
029    /**
030     * @return the URI for external content in this resource
031     */
032    URI getContentUri();
033
034    /**
035     * @return The MimeType of content associated with this resource.
036     */
037    String getMimeType();
038
039    /**
040     * Return the file name for the binary content
041     *
042     * @return original file name for the binary content, or the object's id.
043     */
044    String getFilename();
045
046    /**
047     * @return the URIs of digests for the content in this resource
048     */
049    Collection<URI> getContentDigests();
050
051    /**
052     * @return The size in bytes of content associated with this resource.
053     */
054    long getContentSize();
055}