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.http.commons.api.rdf;
007
008import javax.ws.rs.core.UriInfo;
009
010import org.fcrepo.kernel.api.models.FedoraResource;
011
012import org.apache.jena.rdf.model.Model;
013
014/**
015 * Helper to generate an RDF model for a FedoraResourceImpl that (likely) creates
016 * relations from our resource to other HTTP components
017 *
018 * @author awoods
019 */
020public interface UriAwareResourceModelFactory {
021
022    /**
023     * Given a resource, the UriInfo and a way to generate graph subjects,
024     * create a model with triples to inject into an RDF response for the
025     * resource (e.g. to add HATEOAS links)
026     *
027     * @param resource the resource
028     * @param uriInfo the uri info
029     * @return model containing triples for the given resource
030     */
031    Model createModelForResource(final FedoraResource resource, final UriInfo uriInfo);
032}