Class TriplestoreResource

  • All Implemented Interfaces:
    Resource

    public class TriplestoreResource
    extends Object
    implements Resource
    A triplestore-based implementation of the Trellis Resource API.
    • Constructor Detail

      • TriplestoreResource

        public TriplestoreResource​(RDFConnection rdfConnection,
                                   IRI identifier,
                                   Map<String,​IRI> extensions,
                                   boolean includeLdpType)
        Create a Triplestore-based Resource.
        Parameters:
        rdfConnection - the triplestore connector
        identifier - the identifier
        extensions - a map of extensions
        includeLdpType - whether to include the LDP interaction model in the response
    • Method Detail

      • findResource

        public static CompletableFuture<Resource> findResource​(RDFConnection rdfConnection,
                                                               IRI identifier,
                                                               Map<String,​IRI> extensions,
                                                               boolean includeLdpType)
        Try to load a Trellis resource.
        Parameters:
        rdfConnection - the triplestore connector
        identifier - the identifier
        extensions - a map of extensions
        includeLdpType - whether to include the LDP type in the body of the RDF
        Returns:
        a new completion stage with a Resource, if one exists
        Implementation Requirements:
        This method will load a Resource, initializing the object with all resource metadata used with getModified(), getInteractionModel() and other data fetched by the accessors. The resource content is fetched on demand via the stream() method.
      • getContainer

        public Optional<IRI> getContainer()
        Description copied from interface: Resource
        Get the container for this resource.
        Specified by:
        getContainer in interface Resource
        Returns:
        the identifier for a container, if one exists.
      • stream

        public Stream<Quad> stream()
        Description copied from interface: Resource
        Retrieve the RDF Quads for a resource.
        Specified by:
        stream in interface Resource
        Returns:
        the RDF quads
      • stream

        public Stream<Quad> stream​(Collection<IRI> graphNames)
        Description copied from interface: Resource
        Retrieve the RDF Quads for a set of named graphs.
        Specified by:
        stream in interface Resource
        Parameters:
        graphNames - the named graphs
        Returns:
        the RDF quads
      • getIdentifier

        public IRI getIdentifier()
        Description copied from interface: Resource
        Get an identifier for this resource.
        Specified by:
        getIdentifier in interface Resource
        Returns:
        the identifier
      • getInteractionModel

        public IRI getInteractionModel()
        Description copied from interface: Resource
        Get the LDP interaction model for this resource.
        Specified by:
        getInteractionModel in interface Resource
        Returns:
        the interaction model
      • getMembershipResource

        public Optional<IRI> getMembershipResource()
        Description copied from interface: Resource
        Retrieve the membership resource if this is an LDP Direct or Indirect container.
        Specified by:
        getMembershipResource in interface Resource
        Returns:
        the membership resource
      • getMemberRelation

        public Optional<IRI> getMemberRelation()
        Description copied from interface: Resource
        Retrieve the member relation if this is an LDP Direct or Indirect container.
        Specified by:
        getMemberRelation in interface Resource
        Returns:
        the ldp:hasMemberRelation IRI
      • getMemberOfRelation

        public Optional<IRI> getMemberOfRelation()
        Description copied from interface: Resource
        Retrieve the member of relation IRI.
        Specified by:
        getMemberOfRelation in interface Resource
        Returns:
        the ldp:isMemberOfRelation IRI
      • getInsertedContentRelation

        public Optional<IRI> getInsertedContentRelation()
        Description copied from interface: Resource
        Retrieve the inserted content relation if this is an LDP Indirect container.
        Specified by:
        getInsertedContentRelation in interface Resource
        Returns:
        the inserted content relation
      • getModified

        public Instant getModified()
        Description copied from interface: Resource
        Get the last modified date.
        Specified by:
        getModified in interface Resource
        Returns:
        the last-modified date
      • hasMetadata

        public boolean hasMetadata​(IRI graph)
        Description copied from interface: Resource
        Test whether this resource has an attached metadata resource.
        Specified by:
        hasMetadata in interface Resource
        Parameters:
        graph - the name of the metadata graph
        Returns:
        true if this resource has an attached metadata resource; false otherwise
      • getMetadataGraphNames

        public Set<IRI> getMetadataGraphNames()
        Description copied from interface: Resource
        Retrieve a collection of attached metadata graph names.
        Specified by:
        getMetadataGraphNames in interface Resource
        Returns:
        a set of metadata resource graph names