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