Class 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-2022 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
    BSD-style license. See OpenTrafficSim License.

    $LastChangedDate$, @version $Revision$, by $Author$, initial version Jan 1, 2015

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

      • 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 Detail

      • verify

        public void verify()
        Verify that there are normal (non Connectors) between adjacent nodes, except at start and end (where Connectors are OK.
      • 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
      • 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.
      • 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);
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • clone

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