Class Edge

java.lang.Object
org.apache.openjpa.lib.graph.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 Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    An edge (u, v) is a back edge if it creates a cycle back to an ancestor in the graph.
    static final int
    An edge (u, v) is a forward edge if it is not a tree or back edge.
    static final int
    An edge (u, v) is a tree edge if node v was first discovered by traversing the edge.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Edge(Object from, Object to, boolean directed)
    Constructor.
    Edge(Object from, Object to, boolean directed, Object userObject)
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Clear traversal info.
    List of edges forming a cycle.
    Return the node the edge links from.
    Return the node on the opposite end of the given one, or null if the given node is not part of this edge.
    Return the node the edge links to.
    int
    Traversal bookkeeping info.
    Arbitrary user object associated with the edge.
    double
    Return the weight of the edge.
    boolean
    Return whether the edge is directed.
    boolean
    isFrom(Object node)
    Return true if this edge links from the given node.
    boolean
    Returns if this edge is (still) part of the graph.
    boolean
    isTo(Object node)
    Return true if this edge links to the given node.
    void
    setCycle(List<Edge> cycle)
    List of edges forming a cycle.
    void
    Mark this edge as removed from the graph.
    void
    setType(int type)
    Traversal bookkeeping info.
    void
    Arbitrary user object associated with the edge.
    void
    setWeight(double weight)
    Set the weight of the edge.
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • 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:
    • 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:
    • 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:
  • Constructor Details

    • 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 Details

    • 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.
    • toString

      public String toString()
      Overrides:
      toString in class Object