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 static org.fcrepo.kernel.api.operations.ResourceOperationType.CREATE;
011
012/**
013 * Operation for creating a resource
014 *
015 * @author bbpennel
016 */
017public interface CreateResourceOperation extends ResourceOperation {
018
019    /**
020     * Get the identifier of the parent of the resource being created
021     *
022     * @return identifer of parent
023     */
024    FedoraId getParentId();
025
026    /**
027     * Get the interaction model of the resource being created
028     *
029     * @return interaction model
030     */
031    String getInteractionModel();
032
033    @Override
034    public default ResourceOperationType getType() {
035        return CREATE;
036    }
037
038    /**
039     * A flag indicating whether or the new resource should be created as an archival group.
040     * @return true if archival group
041     */
042    boolean isArchivalGroup();
043}