Class Route
- java.lang.Object
-
- org.opentrafficsim.core.network.route.Route
-
- All Implemented Interfaces:
java.io.Serializable,Identifiable
- Direct Known Subclasses:
CompleteRoute
public class Route extends java.lang.Object implements java.io.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-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.$LastChangedDate: 2020-05-14 13:12:03 +0200 (Thu, 14 May 2020) $, @version $Revision: 6470 $, by $Author: pknoppers $, initial version Jan 1, 2015
- Author:
- Alexander Verbraeck, Peter Knoppers
- See Also:
- Serialized Form
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RouteaddNode(Node node)Add a node to the end of the node list.Routeclone(Network newNetwork)Clone the Route.booleancontains(Node node)NodedestinationNode()booleanequals(java.lang.Object obj)java.lang.StringgetId()NodegetNode(int i)java.util.List<Node>getNodes()inthashCode()intindexOf(Node node)Return the index of a Node in this Route, or -1 if this Route does not contain the specified Node.NodeoriginNode()intsize()java.lang.StringtoString()voidverify()Verify that there are normal (non Connectors) between adjacent nodes, except at start and end (where Connectors are OK.
-
-
-
Constructor Detail
-
Route
public Route(java.lang.String id)
Create an empty route.- Parameters:
id- String; the name of the route.
-
Route
public Route(java.lang.String id, java.util.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 java.util.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 java.lang.String getId()
- Specified by:
getIdin interfaceIdentifiable- Returns:
- name.
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.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
-
-