Class DiffGraph

  • All Implemented Interfaces:
    org.apache.jena.graph.Graph, org.apache.jena.graph.impl.GraphWithPerform

    public class DiffGraph
    extends TransparentWrappedGraph
    A WrappedGraph that filters out deleted triples or adds added triples, without modifying the underlying base graph. This class is for single-threaded use only, typically used as temporary graph layer on top of an existing graph for the duration of some algorithm. This runs in two modes, based on the updateBaseGraph flag. By default/legacy (false) the system will only add triples that exist in none of the subgraphs of the delegate graph and claim to delete triples even if they exist in subgraphs only. If true, the adds will always be applied even if one of the subgraphs already contains the triple. This is making sure that transformations will always produce all requested triples. Furthermore this mode is more correct w.r.t. deletes because it will only allow deleting triples from the editable graph.
    Author:
    Holger Knublauch
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.apache.jena.graph.impl.GraphWithPerform addedGraph
      This graph has additional triples that are not in the delegate.
      protected Set<org.apache.jena.graph.Triple> deletedTriples
      This Set has triples that are in the delegate but are excluded from the filtered graph.
      • Fields inherited from class org.apache.jena.graph.impl.WrappedGraph

        base, gem
      • Fields inherited from interface org.apache.jena.graph.Graph

        emptyGraph
    • Constructor Summary

      Constructors 
      Constructor Description
      DiffGraph​(org.apache.jena.graph.Graph delegate)  
      DiffGraph​(org.apache.jena.graph.Graph delegate, boolean updateBaseGraph)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(org.apache.jena.graph.Triple t)  
      boolean contains​(org.apache.jena.graph.Node s, org.apache.jena.graph.Node p, org.apache.jena.graph.Node o)  
      boolean contains​(org.apache.jena.graph.Triple t)  
      protected boolean containsByEquals​(org.apache.jena.graph.Graph g, org.apache.jena.graph.Triple t)  
      void delete​(org.apache.jena.graph.Triple t)  
      org.apache.jena.util.iterator.ExtendedIterator<org.apache.jena.graph.Triple> find​(org.apache.jena.graph.Node s, org.apache.jena.graph.Node p, org.apache.jena.graph.Node o)  
      org.apache.jena.util.iterator.ExtendedIterator<org.apache.jena.graph.Triple> find​(org.apache.jena.graph.Triple m)  
      org.apache.jena.graph.Graph getAddedGraph()  
      Set<org.apache.jena.graph.Triple> getDeletedTriples()  
      org.apache.jena.shared.PrefixMapping getPrefixMapping()  
      boolean isEmpty()  
      boolean isIsomorphicWith​(org.apache.jena.graph.Graph g)  
      void performAdd​(org.apache.jena.graph.Triple t)  
      void performDelete​(org.apache.jena.graph.Triple t)  
      int size()  
      • Methods inherited from class org.apache.jena.graph.impl.WrappedGraph

        clear, close, dependsOn, getCapabilities, getEventManager, getTransactionHandler, getWrapped, isClosed, remove
      • Methods inherited from interface org.apache.jena.graph.Graph

        add, delete, find, stream, stream
    • Field Detail

      • addedGraph

        protected org.apache.jena.graph.impl.GraphWithPerform addedGraph
        This graph has additional triples that are not in the delegate.
      • deletedTriples

        protected Set<org.apache.jena.graph.Triple> deletedTriples
        This Set has triples that are in the delegate but are excluded from the filtered graph.
    • Constructor Detail

      • DiffGraph

        public DiffGraph​(org.apache.jena.graph.Graph delegate)
      • DiffGraph

        public DiffGraph​(org.apache.jena.graph.Graph delegate,
                         boolean updateBaseGraph)
    • Method Detail

      • add

        public void add​(org.apache.jena.graph.Triple t)
        Specified by:
        add in interface org.apache.jena.graph.Graph
        Overrides:
        add in class org.apache.jena.graph.impl.WrappedGraph
      • delete

        public void delete​(org.apache.jena.graph.Triple t)
        Specified by:
        delete in interface org.apache.jena.graph.Graph
        Overrides:
        delete in class org.apache.jena.graph.impl.WrappedGraph
      • getAddedGraph

        public org.apache.jena.graph.Graph getAddedGraph()
      • contains

        public boolean contains​(org.apache.jena.graph.Node s,
                                org.apache.jena.graph.Node p,
                                org.apache.jena.graph.Node o)
        Specified by:
        contains in interface org.apache.jena.graph.Graph
        Overrides:
        contains in class org.apache.jena.graph.impl.WrappedGraph
      • contains

        public boolean contains​(org.apache.jena.graph.Triple t)
        Specified by:
        contains in interface org.apache.jena.graph.Graph
        Overrides:
        contains in class org.apache.jena.graph.impl.WrappedGraph
      • containsByEquals

        protected boolean containsByEquals​(org.apache.jena.graph.Graph g,
                                           org.apache.jena.graph.Triple t)
      • find

        public org.apache.jena.util.iterator.ExtendedIterator<org.apache.jena.graph.Triple> find​(org.apache.jena.graph.Node s,
                                                                                                 org.apache.jena.graph.Node p,
                                                                                                 org.apache.jena.graph.Node o)
        Specified by:
        find in interface org.apache.jena.graph.Graph
        Overrides:
        find in class org.apache.jena.graph.impl.WrappedGraph
      • find

        public org.apache.jena.util.iterator.ExtendedIterator<org.apache.jena.graph.Triple> find​(org.apache.jena.graph.Triple m)
        Specified by:
        find in interface org.apache.jena.graph.Graph
        Overrides:
        find in class org.apache.jena.graph.impl.WrappedGraph
      • getDeletedTriples

        public Set<org.apache.jena.graph.Triple> getDeletedTriples()
      • getPrefixMapping

        public org.apache.jena.shared.PrefixMapping getPrefixMapping()
        Specified by:
        getPrefixMapping in interface org.apache.jena.graph.Graph
        Overrides:
        getPrefixMapping in class org.apache.jena.graph.impl.WrappedGraph
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface org.apache.jena.graph.Graph
        Overrides:
        isEmpty in class org.apache.jena.graph.impl.WrappedGraph
      • isIsomorphicWith

        public boolean isIsomorphicWith​(org.apache.jena.graph.Graph g)
        Specified by:
        isIsomorphicWith in interface org.apache.jena.graph.Graph
        Overrides:
        isIsomorphicWith in class org.apache.jena.graph.impl.WrappedGraph
      • performAdd

        public void performAdd​(org.apache.jena.graph.Triple t)
        Specified by:
        performAdd in interface org.apache.jena.graph.impl.GraphWithPerform
        Overrides:
        performAdd in class org.apache.jena.graph.impl.WrappedGraph
      • performDelete

        public void performDelete​(org.apache.jena.graph.Triple t)
        Specified by:
        performDelete in interface org.apache.jena.graph.impl.GraphWithPerform
        Overrides:
        performDelete in class org.apache.jena.graph.impl.WrappedGraph
      • size

        public int size()
        Specified by:
        size in interface org.apache.jena.graph.Graph
        Overrides:
        size in class org.apache.jena.graph.impl.WrappedGraph