Interface CodeEdge<G extends CodeGraph<G,​N,​E>,​N extends CodeNode<G,​N,​E>,​E extends CodeEdge<G,​N,​E>>

  • Type Parameters:
    G - the type of the CodeGraphs this list can be used in
    N - the type of the CodeNodes in this list
    E - the type of the CodeEdges in this list
    All Superinterfaces:
    java.lang.Comparable<E>, Edge<G,​N,​E>
    All Known Implementing Classes:
    Edge, FalseEdge, SequentialEdge, TrueEdge

    public interface CodeEdge<G extends CodeGraph<G,​N,​E>,​N extends CodeNode<G,​N,​E>,​E extends CodeEdge<G,​N,​E>>
    extends Edge<G,​N,​E>, java.lang.Comparable<E>
    An Edge that can be used with a CodeGraph.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean isUnconditional()
      Yields true if and only if this edge represent unconditional execution flow between its bounds.
      E newInstance​(N source, N destination)
      Builds a new instance of this edge, connecting the given nodes.
      • Methods inherited from interface java.lang.Comparable

        compareTo
    • Method Detail

      • isUnconditional

        boolean isUnconditional()
        Yields true if and only if this edge represent unconditional execution flow between its bounds. This means that (i) it could be simplified if one of the nodes connected to it is simplified (i.e., removed from the graph), and (ii) the graph containing it can avoid storing the edge if its bounds are subsequent.
        Returns:
        whether or not this edge can be simplified
      • newInstance

        E newInstance​(N source,
                      N destination)
        Builds a new instance of this edge, connecting the given nodes.
        Parameters:
        source - the source node
        destination - the destination node
        Returns:
        a new instance of this edge, connecting the given nodes