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.services;
007
008import org.apache.jena.rdf.model.Model;
009import org.fcrepo.kernel.api.Transaction;
010import org.fcrepo.kernel.api.exception.MalformedRdfException;
011import org.fcrepo.kernel.api.identifiers.FedoraId;
012
013/**
014 * @author peichman
015 * @since 6.0.0
016 */
017public interface ReplacePropertiesService {
018
019    /**
020     * Replace the properties of this object with the properties from the given
021     * model
022     *
023     * @param tx the Transaction
024     * @param userPrincipal the user performing the service
025     * @param fedoraId the internal Id of the fedora resource to update
026     * @param inputModel the model built from the body of the request
027     * @throws MalformedRdfException if malformed rdf exception occurred
028     */
029    void perform(Transaction tx,
030                 String userPrincipal,
031                 FedoraId fedoraId,
032                 Model inputModel) throws MalformedRdfException;
033}