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
008import org.apache.jena.rdf.model.Model;
009import org.fcrepo.kernel.api.RdfStream;
010import org.fcrepo.kernel.api.identifiers.FedoraId;
011
012/**
013 * @author bbpennel
014 *
015 */
016public interface CreateRdfSourceOperationBuilder extends RdfSourceOperationBuilder {
017
018    @Override
019    CreateRdfSourceOperationBuilder userPrincipal(String userPrincipal);
020
021    @Override
022    CreateRdfSourceOperationBuilder triples(RdfStream triples);
023
024    @Override
025    CreateRdfSourceOperationBuilder relaxedProperties(Model model);
026
027    @Override
028    CreateRdfSourceOperation build();
029
030    /**
031     * Set the parent identifier of the resource
032     *
033     * @param parentId parent internal identifier
034     * @return the builder
035     */
036    CreateRdfSourceOperationBuilder parentId(FedoraId parentId);
037
038    /**
039     * Indicates that this resource should be created as an Archival Group
040     * @param flag if true, create as Archival Group
041     * @return this builder
042     */
043    CreateRdfSourceOperationBuilder archivalGroup(boolean flag);
044
045}