DefaultEdgeDirectory
Date: 2016-04-28

org.apache.xmlgraphics.util.dijkstra

## Class DefaultEdgeDirectory

- java.lang.Object
- - org.apache.xmlgraphics.util.dijkstra.DefaultEdgeDirectory

- All Implemented Interfaces:
    EdgeDirectory

      public class DefaultEdgeDirectory
      extends java.lang.Object
      implements EdgeDirectory

  Default implementation of an edge directory for the `DijkstraAlgorithm`.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultEdgeDirectory()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addEdge(Edge edge)` Adds a new edge between two vertices.
    `Edge` | `getBestEdge(Vertex start, Vertex end)` Returns the best edge (the edge with the lowest penalty) between two given vertices.
    `java.util.Iterator` | `getDestinations(Vertex origin)` Returns an iterator over all valid destinations for a given vertex.
    `java.util.Iterator` | `getEdges(Vertex origin)` Returns an iterator over all edges with the given origin.
    `int` | `getPenalty(Vertex start, Vertex end)` Returns the penalty between two vertices.

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

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

- - ### Constructor Detail

    - #### DefaultEdgeDirectory

          public DefaultEdgeDirectory()

  - ### Method Detail

    - #### addEdge

          public void addEdge(Edge edge)

      Adds a new edge between two vertices.
      Parameters:
        `edge` - the new edge

    - #### getPenalty

          public int getPenalty(Vertex start,
                       Vertex end)

      Returns the penalty between two vertices.
      Specified by:
        `getPenalty` in interface `EdgeDirectory`
      Parameters:
        `start` - the start vertex
        `end` - the end vertex
      Returns:
        the penalty between two vertices, or 0 if no single edge between the two vertices exists.

    - #### getDestinations

          public java.util.Iterator getDestinations(Vertex origin)

      Returns an iterator over all valid destinations for a given vertex.
      Specified by:
        `getDestinations` in interface `EdgeDirectory`
      Parameters:
        `origin` - the origin from which to search for destinations
      Returns:
        the iterator over all valid destinations for a given vertex

    - #### getEdges

          public java.util.Iterator getEdges(Vertex origin)

      Returns an iterator over all edges with the given origin.
      Parameters:
        `origin` - the origin
      Returns:
        an iterator over Edge instances

    - #### getBestEdge

          public Edge getBestEdge(Vertex start,
                         Vertex end)

      Returns the best edge (the edge with the lowest penalty) between two given vertices.
      Parameters:
        `start` - the start vertex
        `end` - the end vertex
      Returns:
        the best vertex or null if none is found