Class DelegatingGraph<T>

  • All Implemented Interfaces:
    EdgeManager<T>, Graph<T>, NodeManager<T>, java.lang.Iterable<T>

    public class DelegatingGraph<T>
    extends java.lang.Object
    implements Graph<T>
    A utility class.
    • Constructor Detail

      • DelegatingGraph

        public DelegatingGraph​(Graph<T> delegate)
    • Method Detail

      • addEdge

        public void addEdge​(T src,
                            T dst)
                     throws java.lang.IllegalArgumentException
        Specified by:
        addEdge in interface EdgeManager<T>
        Throws:
        java.lang.IllegalArgumentException
      • addNode

        public void addNode​(T n)
        Description copied from interface: NodeManager
        add a node to this graph
        Specified by:
        addNode in interface NodeManager<T>
      • containsNode

        public boolean containsNode​(T N)
        Specified by:
        containsNode in interface NodeManager<T>
        Returns:
        true iff the graph contains the specified node
      • getNumberOfNodes

        public int getNumberOfNodes()
        Specified by:
        getNumberOfNodes in interface NodeManager<T>
        Returns:
        the number of nodes in this graph
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getPredNodeCount

        public int getPredNodeCount​(T N)
                             throws java.lang.IllegalArgumentException
        Description copied from interface: EdgeManager
        Return the number of immediate predecessor nodes of n
        Specified by:
        getPredNodeCount in interface EdgeManager<T>
        Returns:
        the number of immediate predecessors of n.
        Throws:
        java.lang.IllegalArgumentException
      • getPredNodes

        public java.util.Iterator<T> getPredNodes​(T N)
                                           throws java.lang.IllegalArgumentException
        Description copied from interface: EdgeManager
        Return an Iterator over the immediate predecessor nodes of n This method never returns null.
        Specified by:
        getPredNodes in interface EdgeManager<T>
        Returns:
        an Iterator over the immediate predecessor nodes of this Node.
        Throws:
        java.lang.IllegalArgumentException
      • getSuccNodeCount

        public int getSuccNodeCount​(T N)
                             throws java.lang.IllegalArgumentException
        Description copied from interface: EdgeManager
        Return the number of immediate successor nodes of this Node in the Graph
        Specified by:
        getSuccNodeCount in interface EdgeManager<T>
        Returns:
        the number of immediate successor Nodes of this Node in the Graph.
        Throws:
        java.lang.IllegalArgumentException
      • getSuccNodes

        public java.util.Iterator<T> getSuccNodes​(T N)
                                           throws java.lang.IllegalArgumentException
        Description copied from interface: EdgeManager
        Return an Iterator over the immediate successor nodes of n

        This method never returns null.

        Specified by:
        getSuccNodes in interface EdgeManager<T>
        Returns:
        an Iterator over the immediate successor nodes of n
        Throws:
        java.lang.IllegalArgumentException
      • hasEdge

        public boolean hasEdge​(T src,
                               T dst)
        Specified by:
        hasEdge in interface EdgeManager<T>
      • iterator

        public java.util.Iterator<T> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<T>
        Specified by:
        iterator in interface NodeManager<T>
        Returns:
        an Iterator of the nodes in this graph
      • removeAllIncidentEdges

        public void removeAllIncidentEdges​(T node)
                                    throws java.lang.IllegalArgumentException
        Specified by:
        removeAllIncidentEdges in interface EdgeManager<T>
        Throws:
        java.lang.IllegalArgumentException
      • removeEdge

        public void removeEdge​(T src,
                               T dst)
                        throws java.lang.IllegalArgumentException
        Specified by:
        removeEdge in interface EdgeManager<T>
        Throws:
        java.lang.IllegalArgumentException
      • removeIncomingEdges

        public void removeIncomingEdges​(T node)
                                 throws java.lang.IllegalArgumentException
        Specified by:
        removeIncomingEdges in interface EdgeManager<T>
        Throws:
        java.lang.IllegalArgumentException
      • removeNode

        public void removeNode​(T n)
        Description copied from interface: NodeManager
        remove a node from this graph
        Specified by:
        removeNode in interface NodeManager<T>
      • removeNodeAndEdges

        public void removeNodeAndEdges​(T N)
                                throws java.lang.IllegalArgumentException
        Description copied from interface: Graph
        remove a node and all its incident edges
        Specified by:
        removeNodeAndEdges in interface Graph<T>
        Throws:
        java.lang.IllegalArgumentException
      • removeOutgoingEdges

        public void removeOutgoingEdges​(T node)
                                 throws java.lang.IllegalArgumentException
        Specified by:
        removeOutgoingEdges in interface EdgeManager<T>
        Throws:
        java.lang.IllegalArgumentException