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.fcrepo.kernel.api.identifiers.FedoraId;
009
010import java.net.URI;
011import java.util.Collection;
012
013/**
014 * Builder for operations to create non-rdf sources
015 *
016 * @author bbpennel
017 */
018public interface CreateNonRdfSourceOperationBuilder extends NonRdfSourceOperationBuilder {
019
020    @Override
021    CreateNonRdfSourceOperationBuilder mimeType(String mimetype);
022
023    @Override
024    CreateNonRdfSourceOperationBuilder filename(String filename);
025
026    @Override
027    CreateNonRdfSourceOperationBuilder contentDigests(Collection<URI> digests);
028
029    @Override
030    CreateNonRdfSourceOperationBuilder contentSize(long size);
031
032    /**
033     * Set the parent identifier of the resource
034     *
035     * @param parentId parent internal identifier
036     * @return the builder
037     */
038    CreateNonRdfSourceOperationBuilder parentId(FedoraId parentId);
039
040    @Override
041    CreateNonRdfSourceOperationBuilder userPrincipal(String userPrincipal);
042
043}