Class Edge


  • public class Edge
    extends Object

    A graph edge. Includes the from and to nodes, an arbitrary user object, and a weight. Edges can be either directed or undirected.

    Since:
    1.0.0
    Author:
    Abe White
    • Field Detail

      • TYPE_TREE

        public static final int TYPE_TREE
        An edge (u, v) is a tree edge if node v was first discovered by traversing the edge.
        See Also:
        Constant Field Values
      • TYPE_BACK

        public static final int TYPE_BACK
        An edge (u, v) is a back edge if it creates a cycle back to an ancestor in the graph.
        See Also:
        Constant Field Values
      • TYPE_FORWARD

        public static final int TYPE_FORWARD
        An edge (u, v) is a forward edge if it is not a tree or back edge.
        See Also:
        Constant Field Values
    • Constructor Detail

      • Edge

        public Edge​(Object from,
                    Object to,
                    boolean directed)
        Constructor.
        Parameters:
        from - the node the edge comes from
        to - the node the edge goes to
        directed - whether the edge is directed
      • Edge

        public Edge​(Object from,
                    Object to,
                    boolean directed,
                    Object userObject)
        Constructor.
        Parameters:
        from - the node the edge comes from
        to - the node the edge goes to
        directed - whether the edge is directed
        userObject - an associated object
    • Method Detail

      • getFrom

        public Object getFrom()
        Return the node the edge links from.
      • getTo

        public Object getTo()
        Return the node the edge links to.
      • getOther

        public Object getOther​(Object node)
        Return the node on the opposite end of the given one, or null if the given node is not part of this edge.
      • isTo

        public boolean isTo​(Object node)
        Return true if this edge links to the given node. For undirected edges, this method returns true if either side is equal to the given node.
      • isFrom

        public boolean isFrom​(Object node)
        Return true if this edge links from the given node. For undirected edges, this method returns true if either side is equal to the given node.
      • isDirected

        public boolean isDirected()
        Return whether the edge is directed.
      • getWeight

        public double getWeight()
        Return the weight of the edge.
      • setWeight

        public void setWeight​(double weight)
        Set the weight of the edge.
      • getUserObject

        public Object getUserObject()
        Arbitrary user object associated with the edge.
      • setUserObject

        public void setUserObject​(Object obj)
        Arbitrary user object associated with the edge.
      • getType

        public int getType()
        Traversal bookkeeping info.
      • setType

        public void setType​(int type)
        Traversal bookkeeping info.
      • getCycle

        public List<Edge> getCycle()
        List of edges forming a cycle. Only set for TYPE_BACK and TYPE_FORWARD edges.
      • setCycle

        public void setCycle​(List<Edge> cycle)
        List of edges forming a cycle. Only set for TYPE_BACK and TYPE_FORWARD edges.
      • isRemovedFromGraph

        public boolean isRemovedFromGraph()
        Returns if this edge is (still) part of the graph.
      • setRemovedFromGraph

        public void setRemovedFromGraph()
        Mark this edge as removed from the graph.
      • clearTraversal

        public void clearTraversal()
        Clear traversal info.