001/* 002 * Licensed to DuraSpace under one or more contributor license agreements. 003 * See the NOTICE file distributed with this work for additional information 004 * regarding copyright ownership. 005 * 006 * DuraSpace licenses this file to you under the Apache License, 007 * Version 2.0 (the "License"); you may not use this file except in 008 * compliance with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018package org.fcrepo.kernel.api.operations; 019 020import java.io.InputStream; 021import java.net.URI; 022import java.util.Collection; 023 024/** 025 * An operation for interacting with a non-RDF source resource. 026 * 027 * @author bbpennel 028 */ 029public interface NonRdfSourceOperation extends ResourceOperation { 030 031 /** 032 * @return the content stream for a local binary 033 */ 034 InputStream getContentStream(); 035 036 /** 037 * @return the handling method for external content in this resource 038 */ 039 String getExternalHandling(); 040 041 /** 042 * @return the URI for external content in this resource 043 */ 044 URI getContentUri(); 045 046 /** 047 * @return The MimeType of content associated with this resource. 048 */ 049 String getMimeType(); 050 051 /** 052 * Return the file name for the binary content 053 * 054 * @return original file name for the binary content, or the object's id. 055 */ 056 String getFilename(); 057 058 /** 059 * @return the URIs of digests for the content in this resource 060 */ 061 Collection<URI> getContentDigests(); 062 063 /** 064 * @return The size in bytes of content associated with this resource. 065 */ 066 long getContentSize(); 067}