package org.simantics.district.route;
import java.util.List;
import org.simantics.db.Resource;
/**
* @author Tuukka Lehtonen
*/
public interface Router {
/**
* @return descriptive name of the router
*/
default String name() {
return toString();
}
/**
* Must be invoked outside of any transaction realm, like a database request or
* experiment thread, preferably from a background job thread.
*
* @param config reserved for future use, may be null
* @param wayPoints waypoints for the route to find in visiting order. The
* resources must represents district network diagram elements.
* @return the piece-wise shortest path between the specified waypoints as a
* fully baked path of district network diagram element resources
* @throws RoutingException in case of any problems in routing
*/
List findShortestPath(RouterConfiguration config, List wayPoints) throws RoutingException;
}