Class FileSinkDGSFiltered

All Implemented Interfaces:
AttributeSink, ElementSink, FileSink, Sink

public class FileSinkDGSFiltered
extends FileSinkBaseFiltered

File output for the DGS (Dynamic Graph Stream) file format. It includes also the possibility to filter dynamic events such as :

  • Addition or deletion of nodes or edges.
  • Addition/deletion/modification of attributes of nodes, edges or the graph itself.
  • A step event.

For instance :

 Graph graph = new SingleGraph("My_Graph");
 FileSinkDGSFiltered fileSink = new FileSinkDGSFiltered();
 graph.addSink(fileSink);
 
 // No need to save the attribute "attr1" of any edges
 fileSink.addEdgeAttributeFiltered("attr1");
 // No need to save graph attributes
 fileSink.setNoFilterGraphAttributeAdded(false);
 
 // Start to listen event
 fileSink.begin("./my_graph.dgs");
 
 // Make some modifications on the graph and generate events
 graph.stepBegins(0); // this event will be saved
 graph.setAttribute("attr2", 2); // this event will not be saved
 Node a = graph.addNode("A"); // this event will be saved
 a.setAttribute("attr3", 3); // this event will be saved
 
 // and now, no more need to save modification on nodes attributes
 fileSink.setNoFilterNodeAttributeChanged(false);
 
 Node b = graph.addNode("B"); // this event will be saved
 b.setAttribute("attr4", 4); // this event will not be saved
 
 Edge ab = graph.addEdge("AB", a, b); // this event will be saved
 ab.setAttribute("attr1", 1); // this event will not be saved
 ab.setAttribute("attr5", 5); // this event will be saved
 
 fileSink.end();
 
  • Constructor Details

  • Method Details

    • edgeAttributeAdded

      public void edgeAttributeAdded​(String graphId, long timeId, String edgeId, String attribute, Object value)
      Description copied from interface: AttributeSink
      A edge attribute was added.
      Parameters:
      graphId - Identifier of the graph where the change occurred.
      edgeId - Identifier of the edge whose attribute changed.
      attribute - The attribute name.
      value - The attribute new value.
    • edgeAttributeChanged

      public void edgeAttributeChanged​(String graphId, long timeId, String edgeId, String attribute, Object oldValue, Object newValue)
      Description copied from interface: AttributeSink
      A edge attribute was changed.
      Parameters:
      graphId - Identifier of the graph where the change occurred.
      edgeId - Identifier of the edge whose attribute changed.
      attribute - The attribute name.
      oldValue - The attribute old value.
      newValue - The attribute new value.
    • edgeAttributeRemoved

      public void edgeAttributeRemoved​(String graphId, long timeId, String edgeId, String attribute)
      Description copied from interface: AttributeSink
      A edge attribute was removed.
      Parameters:
      graphId - Identifier of the graph where the attribute was removed.
      edgeId - Identifier of the edge whose attribute was removed.
      attribute - The removed attribute name.
    • graphAttributeAdded

      public void graphAttributeAdded​(String graphId, long timeId, String attribute, Object value)
      Description copied from interface: AttributeSink
      A graph attribute was added.
      Parameters:
      graphId - Identifier of the graph where the attribute changed.
      attribute - The attribute name.
      value - The attribute new value.
    • graphAttributeChanged

      public void graphAttributeChanged​(String graphId, long timeId, String attribute, Object oldValue, Object newValue)
      Description copied from interface: AttributeSink
      A graph attribute was changed.
      Parameters:
      graphId - Identifier of the graph where the attribute changed.
      attribute - The attribute name.
      oldValue - The attribute old value.
      newValue - The attribute new value.
    • graphAttributeRemoved

      public void graphAttributeRemoved​(String graphId, long timeId, String attribute)
      Description copied from interface: AttributeSink
      A graph attribute was removed.
      Parameters:
      graphId - Identifier of the graph where the attribute was removed.
      attribute - The removed attribute name.
    • nodeAttributeAdded

      public void nodeAttributeAdded​(String graphId, long timeId, String nodeId, String attribute, Object value)
      Description copied from interface: AttributeSink
      A node attribute was added.
      Parameters:
      graphId - Identifier of the graph where the change occurred.
      nodeId - Identifier of the node whose attribute changed.
      attribute - The attribute name.
      value - The attribute new value.
    • nodeAttributeChanged

      public void nodeAttributeChanged​(String graphId, long timeId, String nodeId, String attribute, Object oldValue, Object newValue)
      Description copied from interface: AttributeSink
      A node attribute was changed.
      Parameters:
      graphId - Identifier of the graph where the change occurred.
      nodeId - Identifier of the node whose attribute changed.
      attribute - The attribute name.
      oldValue - The attribute old value.
      newValue - The attribute new value.
    • nodeAttributeRemoved

      public void nodeAttributeRemoved​(String graphId, long timeId, String nodeId, String attribute)
      Description copied from interface: AttributeSink
      A node attribute was removed.
      Parameters:
      graphId - Identifier of the graph where the attribute was removed.
      nodeId - Identifier of the node whose attribute was removed.
      attribute - The removed attribute name.
    • edgeAdded

      public void edgeAdded​(String graphId, long timeId, String edgeId, String fromNodeId, String toNodeId, boolean directed)
      Description copied from interface: ElementSink
      An edge was inserted in graph.
      Parameters:
      graphId - Identifier of the graph where the edge was added.
      edgeId - Identifier of the added edge.
      fromNodeId - Identifier of the first node of the edge.
      toNodeId - Identifier of the second node of the edge.
      directed - If true, the edge is directed.
    • edgeRemoved

      public void edgeRemoved​(String graphId, long timeId, String edgeId)
      Description copied from interface: ElementSink
      An edge of graph was removed.The nodes the edge connects may already have been removed from the graph.
      Parameters:
      graphId - The graph where the edge will be removed.
      edgeId - The edge that will be removed.
    • graphCleared

      public void graphCleared​(String graphId, long timeId)
      Description copied from interface: ElementSink
      The whole graph was cleared. All the nodes, edges and attributes of the graph are removed.
      Parameters:
      graphId - The graph cleared.
    • nodeAdded

      public void nodeAdded​(String graphId, long timeId, String nodeId)
      Description copied from interface: ElementSink
      A node was inserted in the given graph.
      Parameters:
      graphId - Identifier of the graph where the node was added.
      nodeId - Identifier of the added node.
    • nodeRemoved

      public void nodeRemoved​(String graphId, long timeId, String nodeId)
      Description copied from interface: ElementSink
      A node was removed from the graph.
      Parameters:
      graphId - Identifier of the graph where the node will be removed.
      nodeId - Identifier of the removed node.
    • stepBegins

      public void stepBegins​(String graphId, long timeId, double step)
      Description copied from interface: ElementSink

      Since dynamic graphs are based on discrete event modifications, the notion of step is defined to simulate elapsed time between events. So a step is a event that occurs in the graph, it does not modify it but it gives a kind of timestamp that allow the tracking of the progress of the graph over the time.

      This kind of event is useful for dynamic algorithms that listen to the dynamic graph and need to measure the time in the graph's evolution.

      Parameters:
      graphId - Identifier of the graph where the step starts.
      timeId - A numerical value that may give a timestamp to track the evolution of the graph over the time.