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.services; 019 020import java.io.InputStream; 021import java.net.URI; 022import java.util.Collection; 023 024import org.fcrepo.kernel.api.identifiers.FedoraId; 025import org.fcrepo.kernel.api.models.ExternalContent; 026 027/** 028 * Interface for service to replace existing binaries 029 * 030 * @author mohideen 031 */ 032public interface ReplaceBinariesService { 033 034 /** 035 * Replace an existing binary. 036 * 037 * @param txId The transaction ID for the request. 038 * @param userPrincipal the user performing the service 039 * @param fedoraId The internal identifier of the parent. 040 * @param filename The filename of the binary. 041 * @param contentType The content-type header or null if none. 042 * @param digests The binary digest or null if none. 043 * @param size The binary size. 044 * @param contentBody The request body or null if none. 045 * @param externalContent The external content handler or null if none. 046 */ 047 void perform(String txId, 048 String userPrincipal, 049 FedoraId fedoraId, 050 String filename, 051 String contentType, 052 Collection<URI> digests, 053 InputStream contentBody, 054 long size, 055 ExternalContent externalContent); 056}