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.impl.operations; 019 020import java.io.InputStream; 021import java.net.URI; 022 023import org.fcrepo.kernel.api.Transaction; 024import org.fcrepo.kernel.api.identifiers.FedoraId; 025import org.fcrepo.kernel.api.operations.CreateNonRdfSourceOperationBuilder; 026import org.fcrepo.kernel.api.operations.NonRdfSourceOperationFactory; 027import org.springframework.stereotype.Component; 028 029/** 030 * Factory for operations to update non-rdf sources 031 * 032 * @author bbpennel 033 */ 034@Component 035public class NonRdfSourceOperationFactoryImpl implements NonRdfSourceOperationFactory { 036 037 @Override 038 public UpdateNonRdfSourceOperationBuilder updateExternalBinaryBuilder(final Transaction transaction, 039 final FedoraId rescId, 040 final String handling, 041 final URI contentUri) { 042 return new UpdateNonRdfSourceOperationBuilder(transaction, rescId, handling, contentUri); 043 } 044 045 @Override 046 public UpdateNonRdfSourceOperationBuilder updateInternalBinaryBuilder(final Transaction transaction, 047 final FedoraId rescId, 048 final InputStream contentStream) { 049 return new UpdateNonRdfSourceOperationBuilder(transaction, rescId, contentStream); 050 } 051 052 @Override 053 public CreateNonRdfSourceOperationBuilder createExternalBinaryBuilder(final Transaction transaction, 054 final FedoraId rescId, 055 final String handling, final URI contentUri) { 056 return new CreateNonRdfSourceOperationBuilderImpl(transaction, rescId, handling, contentUri); 057 } 058 059 @Override 060 public CreateNonRdfSourceOperationBuilder createInternalBinaryBuilder(final Transaction transaction, 061 final FedoraId rescId, 062 final InputStream contentStream) { 063 return new CreateNonRdfSourceOperationBuilderImpl(transaction, rescId, contentStream); 064 } 065 066}