Class Route

java.lang.Object
org.opentrafficsim.core.network.route.Route
All Implemented Interfaces:
Serializable, Identifiable
Direct Known Subclasses:
CompleteRoute

public class Route
extends Object
implements Serializable, Identifiable
A Route consists of a list of Nodes. A route does not have to be complete. As long as all 'splitting' nodes are part of the route and have a valid successor node (connected by a Link), the strategical planner is able to make a plan. An extension of the Route class exists that contains a complete route, where all nodes on the route have to be present and connected.

Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

$LastChangedDate: 2019-06-30 03:14:38 +0200 (Sun, 30 Jun 2019) $, @version $Revision: 5552 $, by $Author: averbraeck $, initial version Jan 1, 2015

Author:
Alexander Verbraeck, Peter Knoppers
See Also:
Serialized Form
  • Constructor Details

    • Route

      public Route​(String id)
      Create an empty route.
      Parameters:
      id - String; the name of the route.
    • Route

      public Route​(String id, List<Node> nodes)
      Create a route based on an initial list of nodes.
      Parameters:
      nodes - List<Node>; the initial list of nodes.
      id - String; the name of the route.
  • Method Details

    • addNode

      public Route addNode​(Node node) throws NetworkException
      Add a node to the end of the node list.
      Parameters:
      node - Node; the node to add.
      Returns:
      Route; this route for method chaining
      Throws:
      NetworkException - in case node could not be added to the route.
    • getNodes

      public final List<Node> getNodes()
      Returns:
      nodes.
    • getNode

      public final Node getNode​(int i) throws NetworkException
      Parameters:
      i - int; the index of the node to obtain
      Returns:
      node i.
      Throws:
      NetworkException - if i < 0 or i > size
    • originNode

      public final Node originNode() throws NetworkException
      Returns:
      the first node of the route.
      Throws:
      NetworkException - when the list has no nodes.
    • size

      public final int size()
      Returns:
      the number of nodes in the list. If the list contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.
    • destinationNode

      public final Node destinationNode() throws NetworkException
      Returns:
      the last node of the route.
      Throws:
      NetworkException - when the list has no nodes.
    • indexOf

      public final int indexOf​(Node node)
      Return the index of a Node in this Route, or -1 if this Route does not contain the specified Node.
      If this route contains the Node more than once, the index of the first is returned.
      Parameters:
      node - Node; the Node to find
      Returns:
      int;
    • contains

      public final boolean contains​(Node node)
      Parameters:
      node - Node; the Node to find
      Returns:
      whether the route contains this node (quick using LinkedHashSet);
    • getId

      public final String getId()
      Specified by:
      getId in interface Identifiable
      Returns:
      name.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • clone

      public Route clone​(Network newNetwork, SimulatorInterface.TimeDoubleUnit newSimulator) throws NetworkException
      Clone the Route.
      Parameters:
      newNetwork - Network; the new network
      newSimulator - SimulatorInterface.TimeDoubleUnit; the new simulator for this network
      Returns:
      a clone of this route
      Throws:
      NetworkException - in case the cloning fails