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.api.operations; 007 008 009import org.fcrepo.config.ServerManagedPropsMode; 010import org.fcrepo.kernel.api.Transaction; 011import org.fcrepo.kernel.api.identifiers.FedoraId; 012 013/** 014 * Factory for operations on rdf sources 015 * 016 * @author bbpennel 017 */ 018public interface RdfSourceOperationFactory extends ResourceOperationFactory { 019 020 /** 021 * Get a builder for an operation to create an RDF source 022 * 023 * @param transaction the transaction 024 * @param rescId id of the resource targeted by the operation 025 * @param interactionModel interaction model for the resource being created 026 * @param serverManagedPropsMode server managed props mode 027 * @return new builder 028 */ 029 CreateRdfSourceOperationBuilder createBuilder(Transaction transaction, 030 FedoraId rescId, 031 String interactionModel, 032 ServerManagedPropsMode serverManagedPropsMode); 033 034 /** 035 * Get a builder for an operation to update an RDF source 036 * 037 * @param transaction the transaction 038 * @param rescId id of the resource targeted by the operation 039 * @param serverManagedPropsMode server managed props mode 040 * @return new builder 041 */ 042 RdfSourceOperationBuilder updateBuilder(Transaction transaction, FedoraId rescId, 043 final ServerManagedPropsMode serverManagedPropsMode); 044}