|
|
|
|
|
|
|
|
|
|
public IEdge edge { get; private set; } |
|
|
|
} |
|
|
|
|
|
|
|
public static class GraphChangeExtensions |
|
|
|
{ |
|
|
|
public static void Match(this GraphChange change, |
|
|
|
Action<NodeAddedGraphChange> nodeAdded = null, |
|
|
|
Action<NodeRemovedGraphChange> nodeRemoved = null, |
|
|
|
Action<EdgeAddedGraphChange> edgeAdded = null, |
|
|
|
Action<EdgeRemovedGraphChange> edgeRemoved = null) |
|
|
|
{ |
|
|
|
if (change is NodeAddedGraphChange && nodeAdded != null) |
|
|
|
nodeAdded((NodeAddedGraphChange)change); |
|
|
|
else if (change is NodeRemovedGraphChange && nodeRemoved != null) |
|
|
|
nodeRemoved((NodeRemovedGraphChange)change); |
|
|
|
else if (change is EdgeAddedGraphChange && edgeAdded != null) |
|
|
|
edgeAdded((EdgeAddedGraphChange)change); |
|
|
|
else if (change is EdgeRemovedGraphChange && edgeRemoved != null) |
|
|
|
edgeRemoved((EdgeRemovedGraphChange)change); |
|
|
|
} |
|
|
|
} |
|
|
|
} |