Class ObservableGraphImpl

java.lang.Object
org.apache.jena.sparql.graph.GraphWrapper
org.aksw.jena_sparql_api.collection.observable.ObservableGraphImpl
All Implemented Interfaces:
ObservableGraph, org.apache.jena.graph.Graph

public class ObservableGraphImpl extends org.apache.jena.sparql.graph.GraphWrapper implements ObservableGraph
A graph wrapper that overrides the add(Triple) and delete(Triple) methods such that duplicate insertions and removals are suppressed and thus do not fire superfluous events. More importantly, the addPropertyChangeListener(PropertyChangeListener) method is provided which fires events BEFORE changes occur on the graph. Hence, the old state of the graph is accessible during event processing. The raised events are instances of CollectionChangedEventImpl which is a subclass of PropertyChangeEvent. Note that GraphWrapper.getEventManager() fires events AFTER changes already occurred.
Author:
raven
  • Field Details

    • CheckFirst

      protected boolean CheckFirst
      Whether to see if a quad action will change the dataset - test before add for existence, test before delete for absence
    • RecordNoAction

      protected boolean RecordNoAction
      Whether to record a no-op (maybe as a comment)
    • vcs

      protected VetoableChangeSupport vcs
    • pcs

      protected PropertyChangeSupport pcs
  • Constructor Details

    • ObservableGraphImpl

      public ObservableGraphImpl(org.apache.jena.graph.Graph delegate)
  • Method Details

    • decorate

      public static ObservableGraphImpl decorate(org.apache.jena.graph.Graph delegate)
    • delta

      public boolean delta(Collection<? extends org.apache.jena.graph.Triple> rawAdditions, Collection<?> rawDeletions)
      Specified by:
      delta in interface ObservableGraph
    • applyDeltaGraph

      public static boolean applyDeltaGraph(org.apache.jena.graph.Graph self, org.apache.jena.graph.Graph backend, VetoableChangeSupport vcs, PropertyChangeSupport pcs, boolean clearIntersection, Collection<? extends org.apache.jena.graph.Triple> rawAdditions, Collection<?> rawRemovals)
    • add

      public void add(org.apache.jena.graph.Triple quad)
      Specified by:
      add in interface org.apache.jena.graph.Graph
      Overrides:
      add in class org.apache.jena.sparql.graph.GraphWrapper
    • delete

      public void delete(org.apache.jena.graph.Triple quad)
      Specified by:
      delete in interface org.apache.jena.graph.Graph
      Overrides:
      delete in class org.apache.jena.sparql.graph.GraphWrapper
    • remove

      public void remove(org.apache.jena.graph.Node s, org.apache.jena.graph.Node p, org.apache.jena.graph.Node o)
      Specified by:
      remove in interface org.apache.jena.graph.Graph
      Overrides:
      remove in class org.apache.jena.sparql.graph.GraphWrapper
    • deleteAny

      public static void deleteAny(org.apache.jena.graph.Graph graph, org.apache.jena.graph.Triple pattern, PropertyChangeSupport pcs)
    • addVetoableChangeListener

      public Runnable addVetoableChangeListener(VetoableChangeListener listener)
      Specified by:
      addVetoableChangeListener in interface ObservableGraph
    • addPropertyChangeListener

      public org.aksw.commons.collection.observable.Registration addPropertyChangeListener(PropertyChangeListener listener)
      Specified by:
      addPropertyChangeListener in interface ObservableGraph
    • 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.sparql.graph.GraphWrapper