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 Summary

    Fields
    Modifier and Type
    Field
    Description
    protected boolean
    Whether to see if a quad action will change the dataset - test before add for existence, test before delete for absence
     
    protected boolean
    Whether to record a no-op (maybe as a comment)
     

    Fields inherited from interface org.apache.jena.graph.Graph

    emptyGraph
  • Constructor Summary

    Constructors
    Constructor
    Description
    ObservableGraphImpl(org.apache.jena.graph.Graph delegate)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(org.apache.jena.graph.Triple quad)
     
    org.aksw.commons.collection.observable.Registration
     
     
    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)
     
    decorate(org.apache.jena.graph.Graph delegate)
     
    void
    delete(org.apache.jena.graph.Triple quad)
     
    static void
    deleteAny(org.apache.jena.graph.Graph graph, org.apache.jena.graph.Triple pattern, PropertyChangeSupport pcs)
     
    boolean
    delta(Collection<? extends org.apache.jena.graph.Triple> rawAdditions, Collection<?> rawDeletions)
     
    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)
     
    void
    remove(org.apache.jena.graph.Node s, org.apache.jena.graph.Node p, org.apache.jena.graph.Node o)
     

    Methods inherited from class org.apache.jena.sparql.graph.GraphWrapper

    clear, close, contains, contains, dependsOn, find, get, getEventManager, getPrefixMapping, getTransactionHandler, isClosed, isEmpty, isIsomorphicWith, size

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.jena.graph.Graph

    add, clear, close, contains, contains, delete, dependsOn, find, find, getCapabilities, getEventManager, getPrefixMapping, getTransactionHandler, isClosed, isEmpty, isIsomorphicWith, size, sizeLong, stream, stream

    Methods inherited from interface org.aksw.jena_sparql_api.collection.observable.ObservableGraph

    asSet, createSetField, createSetField, createValueField, createValueField
  • 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