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; }