org.eclipse.jetty.deploy.graph

## Class Graph

- java.lang.Object
- - org.eclipse.jetty.deploy.graph.Graph

Direct Known Subclasses:
  AppLifeCycle

    public class Graph
    extends Object

Basic directed graph implementation

### Constructor Summary

Constructors
Constructor and Description
`Graph()`

### Method Summary

Methods
`void` `addEdge(Edge edge)`
`void` `addEdge(String from, String to)`
`void` `addNode(Node node)`
`Set<Edge>` `findEdges(Node node)` Find all edges that are connected to the specific node, both as an outgoing `Edge.getFrom()` or incoming `Edge.getTo()` end point.
`Set<Edge>` `findEdgesFrom(Node from)` Find all edges that are connected `Edge.getFrom()` the specific node.
`Set<Edge>` `getEdges()`
`Node` `getNodeByName(String name)` Get the Node by Name.
`Set<Node>` `getNodes()`
`Path` `getPath(Node from, Node to)` Using BFS (Breadth First Search) return the path from a any arbitrary node to any other.
`Path` `getPath(String nodeNameOrigin, String nodeNameDest)` Convenience method for `getPath(Node, Node)`
`void` `insertNode(Edge edge, Node node)` Insert an arbitrary node on an existing edge.
`void` `insertNode(Edge edge, String nodeName)` Convenience method for `insertNode(Edge, Node)`
`void` `removeEdge(Edge edge)`
`void` `removeEdge(String fromNodeName, String toNodeName)`
`void` `removeNode(Node node)`
`void` `setEdges(Set<Edge> edges)`
`void` `setNodes(Set<Node> nodes)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Graph

    public Graph()

### Method Detail

#### addEdge

    public void addEdge(Edge edge)

#### addEdge

    public void addEdge(String from,
               String to)

#### addNode

    public void addNode(Node node)

#### insertNode

    public void insertNode(Edge edge,
                  String nodeName)

Convenience method for `insertNode(Edge, Node)`

Parameters:
  `edge` - the edge to split and insert a node into
  `nodeName` - the name of the node to insert along the edge

#### insertNode

    public void insertNode(Edge edge,
                  Node node)

Insert an arbitrary node on an existing edge.

Parameters:
  `edge` - the edge to split and insert a node into
  `node` - the node to insert along the edge

#### findEdges

    public Set<Edge> findEdges(Node node)

Find all edges that are connected to the specific node, both as an outgoing `Edge.getFrom()` or incoming `Edge.getTo()` end point.

Parameters:
  `node` - the node with potential end points
Returns:
  the set of edges connected to the node

#### findEdgesFrom

    public Set<Edge> findEdgesFrom(Node from)

Find all edges that are connected `Edge.getFrom()` the specific node.

Parameters:
  `from` - the node with potential edges from it
Returns:
  the set of edges from the node

#### getPath

    public Path getPath(String nodeNameOrigin,
               String nodeNameDest)

Convenience method for `getPath(Node, Node)`

Parameters:
  `nodeNameOrigin` - the name of the node to the path origin.
  `nodeNameDest` - the name of the node to the path destination.
Returns:
  the path to take

#### getPath

    public Path getPath(Node from,
               Node to)

Using BFS (Breadth First Search) return the path from a any arbitrary node to any other.

Parameters:
  `from` - the node from
  `to` - the node to
Returns:
  the path to take or null if there is no path.

#### getEdges

    public Set<Edge> getEdges()

#### getNodeByName

    public Node getNodeByName(String name)

Get the Node by Name.

Parameters:
  `name` - the name to lookup
Returns:
  the node if found or null if not found.

#### getNodes

    public Set<Node> getNodes()

#### removeEdge

    public void removeEdge(Edge edge)

#### removeEdge

    public void removeEdge(String fromNodeName,
                  String toNodeName)

#### removeNode

    public void removeNode(Node node)

#### setEdges

    public void setEdges(Set<Edge> edges)

#### setNodes

    public void setNodes(Set<Node> nodes)