Interface GraphMaker

  • All Known Implementing Classes:
    BaseGraphMaker, SimpleGraphMaker

    public interface GraphMaker
    A factory for providing instances of named graphs with appropriate storage models. It represents a directory, or a database, or a mapping: names map to graphs for the lifetime of the GraphMaker. Names can be "arbitrary" character sequences.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void close()
      Close the factory - no more requests need be honoured, and any clean-up can be done.
      Graph createGraph()
      Answer a graph who's name isn't interesting.
      Graph createGraph​(java.lang.String name)
      Create a graph that does not already exist - equivalent to
      createGraph( name, false ).
      Graph createGraph​(java.lang.String name, boolean strict)
      Create a new graph associated with the given name.
      Graph getGraph()
      Answer the default graph of this GraphMaker.
      boolean hasGraph​(java.lang.String name)
      return true iff the factory has a graph with the given name
      ExtendedIterator<java.lang.String> listGraphs()
      Answer an [extended] iterator where each element is the name of a graph in the maker, and the complete sequence exhausts the set of names.
      Graph openGraph()
      Answer the default graph of this GraphMaker, if it has one.
      Graph openGraph​(java.lang.String name)
      Equivalent to openGraph( name, false )
      Graph openGraph​(java.lang.String name, boolean strict)
      Find an existing graph that this factory knows about under the given name.
      void removeGraph​(java.lang.String name)
      Remove the association between the name and the graph.
    • Method Detail

      • getGraph

        Graph getGraph()
        Answer the default graph of this GraphMaker. The same graph is returned on each call. It may only be constructed on the first call of getGraph(), or at any previous time.
        Returns:
        the same default graph each time
      • openGraph

        Graph openGraph()
        Answer the default graph of this GraphMaker, if it has one. If not, throw an exception.
      • createGraph

        Graph createGraph()
        Answer a graph who's name isn't interesting. Each call delivers a different graph. The GraphMaker may reserve a bunch of names for this purpose, of the form "anon_", if it cannot support truly anonymous graphs.
        Returns:
        a fresh anonymous graph
      • createGraph

        Graph createGraph​(java.lang.String name,
                          boolean strict)
        Create a new graph associated with the given name. If there is no such association, create one and return it. If one exists but strict is false, return the associated graph. Otherwise throw an AlreadyExistsException.
        Parameters:
        name - the name to give to the new graph
        strict - true to cause existing bindings to throw an exception
        Throws:
        AlreadyExistsException - if that name is already bound.
      • createGraph

        Graph createGraph​(java.lang.String name)
        Create a graph that does not already exist - equivalent to
        createGraph( name, false ).
      • openGraph

        Graph openGraph​(java.lang.String name,
                        boolean strict)
        Find an existing graph that this factory knows about under the given name. If such a graph exists, return it. Otherwise, if strict is false, create a new graph, associate it with the name, and return it. Otherwise throw a DoesNotExistException.
        Parameters:
        name - the name of the graph to find and return
        strict - false to create a new one if one doesn't already exist
        Throws:
        DoesNotExistException - if there's no such named graph
      • openGraph

        Graph openGraph​(java.lang.String name)
        Equivalent to openGraph( name, false )
      • removeGraph

        void removeGraph​(java.lang.String name)
        Remove the association between the name and the graph. create will now be able to create a graph with that name, and open will no longer be able to find it. Throws an exception if there's no such graph. The graph itself is not touched.
        Parameters:
        name - the name to disassociate
        Throws:
        DoesNotExistException - if the name is unbound
      • hasGraph

        boolean hasGraph​(java.lang.String name)
        return true iff the factory has a graph with the given name
        Parameters:
        name - the name of the graph to look for
        Returns:
        true iff there's a graph with that name
      • close

        void close()
        Close the factory - no more requests need be honoured, and any clean-up can be done.
      • listGraphs

        ExtendedIterator<java.lang.String> listGraphs()
        Answer an [extended] iterator where each element is the name of a graph in the maker, and the complete sequence exhausts the set of names. No particular order is expected from the list.
        Returns:
        an extended iterator over the names of graphs known to this Maker.