lingua-franca 0.10.1
Lingua Franca code generator
Loading...
Searching...
No Matches
org.lflang.graph.DirectedGraph< T > Class Template Reference

Directed graph that maps nodes to its upstream and downstream neighbors. More...

Inherits org.lflang.graph.Graph< T >.

Inherited by org.lflang.analyses.statespace.StateSpaceDiagram, and org.lflang.graph.PrecedenceGraph< T extends Object >.

Public Member Functions

void addEdge (T sink, T source)
 Add a new directed edge to the graph.
void addEdges (T sink, List< T > sources)
 Add new directed edges to the graph.
void addNode (T node)
 Add the given node to the graph.
void clear ()
DirectedGraph< T > copy ()
 Obtain a copy of this graph by creating an new instance and copying the adjacency maps.
int edgeCount ()
 Return the number of directed edges in this graph.
Set< T > getDownstreamAdjacentNodes (T node)
 Return all immediate downstream neighbors of a given node.
Set< T > getUpstreamAdjacentNodes (T node)
 Return all immediate upstream neighbors of a given node.
boolean hasNode (T node)
 Return true if this graph has the given node in it.
Set< T > leafNodes ()
 Return the leaf nodes of this graph.
void merge (DirectedGraph< T > another)
 Merge another directed graph into this one.
int nodeCount ()
 Return the number of nodes in this graph.
Set< T > nodes ()
 Return an unmodifiable set of nodes in this graph.
void removeEdge (T sink, T source)
 Remove a directed edge from the graph.
void removeNode (T node)
 Remove the given node from the graph.
Set< T > rootNodes ()
 Return the root nodes of this graph.
String toDOT ()
 Return the DOT (GraphViz) representation of the graph.
String toString ()
 Return a textual list of the nodes.

Protected Member Functions

void graphChanged ()
 Mark the graph to have changed so that any cached analysis is refreshed accordingly.

Detailed Description

Directed graph that maps nodes to its upstream and downstream neighbors.

Author
Marten Lohstroh
Clément Fournier

Member Function Documentation

◆ addEdge()

void org.lflang.graph.DirectedGraph< T >.addEdge ( T sink,
T source )

Add a new directed edge to the graph.

The first argument is the downstream node, the second argument the upstream node. If either argument is null, do nothing.

Parameters
sinkThe downstream immediate neighbor.
sourceThe upstream immediate neighbor.

Implements org.lflang.graph.Graph< T >.

◆ addEdges()

void org.lflang.graph.DirectedGraph< T >.addEdges ( T sink,
List< T > sources )

Add new directed edges to the graph.

The first argument is the downstream node, the second argument a set of upstream nodes.

Parameters
sinkThe downstream immediate neighbor.
sourcesThe upstream immediate neighbors.

Implements org.lflang.graph.Graph< T >.

◆ addNode()

void org.lflang.graph.DirectedGraph< T >.addNode ( T node)

Add the given node to the graph.

Implements org.lflang.graph.Graph< T >.

◆ clear()

void org.lflang.graph.DirectedGraph< T >.clear ( )

◆ copy()

Obtain a copy of this graph by creating an new instance and copying the adjacency maps.

◆ edgeCount()

int org.lflang.graph.DirectedGraph< T >.edgeCount ( )

Return the number of directed edges in this graph.

Implements org.lflang.graph.Graph< T >.

◆ getDownstreamAdjacentNodes()

Set< T > org.lflang.graph.DirectedGraph< T >.getDownstreamAdjacentNodes ( T node)

Return all immediate downstream neighbors of a given node.

Parameters
nodeThe node to report the immediate downstream neighbors of.

◆ getUpstreamAdjacentNodes()

Set< T > org.lflang.graph.DirectedGraph< T >.getUpstreamAdjacentNodes ( T node)

Return all immediate upstream neighbors of a given node.

Parameters
nodeThe node to report the immediate upstream neighbors of.

◆ graphChanged()

void org.lflang.graph.DirectedGraph< T >.graphChanged ( )
protected

Mark the graph to have changed so that any cached analysis is refreshed accordingly.

Reimplemented in org.lflang.graph.PrecedenceGraph< T extends Object >.

◆ hasNode()

boolean org.lflang.graph.DirectedGraph< T >.hasNode ( T node)

Return true if this graph has the given node in it.

Parameters
nodeThe node to look for.

Implements org.lflang.graph.Graph< T >.

◆ leafNodes()

Set< T > org.lflang.graph.DirectedGraph< T >.leafNodes ( )

Return the leaf nodes of this graph.

Leaf nodes have no downstream neighbors.

◆ merge()

void org.lflang.graph.DirectedGraph< T >.merge ( DirectedGraph< T > another)

Merge another directed graph into this one.

Parameters
anotherThe graph to merge into this one.

◆ nodeCount()

int org.lflang.graph.DirectedGraph< T >.nodeCount ( )

Return the number of nodes in this graph.

Implements org.lflang.graph.Graph< T >.

◆ nodes()

Set< T > org.lflang.graph.DirectedGraph< T >.nodes ( )

Return an unmodifiable set of nodes in this graph.

Implements org.lflang.graph.Graph< T >.

◆ removeEdge()

void org.lflang.graph.DirectedGraph< T >.removeEdge ( T sink,
T source )

Remove a directed edge from the graph.

Parameters
sinkThe downstream immediate neighbor.
sourceThe upstream immediate neighbor.

Implements org.lflang.graph.Graph< T >.

◆ removeNode()

void org.lflang.graph.DirectedGraph< T >.removeNode ( T node)

Remove the given node from the graph.

This also eliminates any edges from upstream and to downstream neighbors of this node.

Parameters
nodeThe node to remove.

Implements org.lflang.graph.Graph< T >.

◆ rootNodes()

Set< T > org.lflang.graph.DirectedGraph< T >.rootNodes ( )

Return the root nodes of this graph.

Root nodes have no upstream neighbors.

◆ toDOT()

String org.lflang.graph.DirectedGraph< T >.toDOT ( )

Return the DOT (GraphViz) representation of the graph.

Implements org.lflang.graph.Graph< T >.

Reimplemented in org.lflang.generator.ReactionInstanceGraph.

◆ toString()

String org.lflang.graph.DirectedGraph< T >.toString ( )

Return a textual list of the nodes.


The documentation for this class was generated from the following file:
  • /Users/runner/work/lingua-franca/lingua-franca/core/src/main/java/org/lflang/graph/DirectedGraph.java