/*
* Created on Apr 2, 2004
*
* Copyright (c) 2004, the JUNG Project and the Regents of the University
* of California
* All rights reserved.
*
* This software is open-source under the BSD license; see either
* "license.txt" or
* http://jung.sourceforge.net/license.txt for a description.
*/
package edu.uci.ics.jung.algorithms.shortestpath;
import java.util.Map;
/**
* An interface for classes which calculate the distance between one vertex and
* another.
*
* @author Joshua O'Madadhain
*/
public interface Distance<V> {
/**
* Returns the distance from the <code>source</code> vertex to the
* <code>target</code> vertex. If <code>target</code> is not reachable from
* <code>source</code>, returns null.
*/
Number getDistance(V source, V target);
/**
* <p>
* Returns a <code>Map</code> which maps each vertex in the graph (including
* the <code>source</code> vertex) to its distance (represented as a Number)
* from <code>source</code>. If any vertex is not reachable from
* <code>source</code>, no distance is stored for that vertex.
*/
Map<V, Number> getDistanceMap(V source);
}