+++ /dev/null
-/*
- * Created on Jul 10, 2005
- *
- * Copyright (c) 2005, 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.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import edu.uci.ics.jung.graph.Graph;
-import edu.uci.ics.jung.graph.util.Pair;
-
-/**
- * Utilities relating to the shortest paths in a graph.
- */
-public class ShortestPathUtils
-{
- /**
- * Returns a <code>List</code> of the edges on the shortest path from
- * <code>source</code> to <code>target</code>, in order of their
- * occurrence on this path.
- */
- public static <V, E> List<E> getPath(Graph<V,E> graph, ShortestPath<V,E> sp, V source, V target)
- {
- LinkedList<E> path = new LinkedList<E>();
-
- Map<V,E> incomingEdges = sp.getIncomingEdgeMap(source);
-
- if (incomingEdges.isEmpty() || incomingEdges.get(target) == null)
- return path;
- V current = target;
- while (!current.equals(source))
- {
- E incoming = incomingEdges.get(current);
- path.addFirst(incoming);
- Pair<V> endpoints = graph.getEndpoints(incoming);
- if(endpoints.getFirst().equals(current)) {
- current = endpoints.getSecond();
- } else {
- current = endpoints.getFirst();
- }
- //incoming.getOpposite(current);
- }
- return path;
- }
-}