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 org.fcrepo.config.ServerManagedPropsMode;
009import org.fcrepo.kernel.api.Transaction;
010import org.fcrepo.kernel.api.identifiers.FedoraId;
011import org.fcrepo.kernel.api.operations.CreateRdfSourceOperationBuilder;
012import org.fcrepo.kernel.api.operations.RdfSourceOperationBuilder;
013import org.fcrepo.kernel.api.operations.RdfSourceOperationFactory;
014import org.springframework.stereotype.Component;
015
016
017/**
018 * Implementation of a factory for operations on rdf sources
019 *
020 * @author bbpennel
021 */
022@Component
023public class RdfSourceOperationFactoryImpl implements RdfSourceOperationFactory {
024
025    @Override
026    public CreateRdfSourceOperationBuilder createBuilder(final Transaction transaction,
027                                                         final FedoraId rescId,
028                                                         final String interactionModel,
029                                                         final ServerManagedPropsMode serverManagedPropsMode) {
030        return new CreateRdfSourceOperationBuilderImpl(transaction, rescId, interactionModel, serverManagedPropsMode);
031    }
032
033    @Override
034    public RdfSourceOperationBuilder updateBuilder(final Transaction transaction,
035                                                   final FedoraId rescId,
036                                                   final ServerManagedPropsMode serverManagedPropsMode) {
037        return new UpdateRdfSourceOperationBuilder(transaction, rescId, serverManagedPropsMode);
038    }
039}