1 package org.opentrafficsim.sim0mq.kpi;
2
3 import org.opentrafficsim.kpi.interfaces.RouteDataInterface;
4
5 /**
6 * <p>
7 * Copyright (c) 2013-2016 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
8 * BSD-style license. See <a href="http://opentrafficsim.org/node/13">OpenTrafficSim License</a>.
9 * <p>
10 * @version $Revision$, $LastChangedDate$, by $Author$, initial version 13 okt. 2016 <br>
11 * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
12 * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a>
13 * @author <a href="http://www.transport.citg.tudelft.nl">Wouter Schakel</a>
14 */
15 public class RouteData implements RouteDataInterface
16 {
17 /** Route name. */
18 private final String routeName;
19
20 /** Route start. */
21 private final NodeData startNode;
22
23 /** Route end. */
24 private final NodeData endNode;
25
26 /**
27 * @param routeName name of the route
28 * @param startNode data of the start node of the route
29 * @param endNode data of the end node of the route
30 */
31 public RouteData(String routeName, NodeData startNode, NodeData endNode)
32 {
33 super();
34 this.routeName = routeName;
35 this.startNode = startNode;
36 this.endNode = endNode;
37 }
38
39 /**
40 * @return routeName
41 */
42 public final String getRouteName()
43 {
44 return this.routeName;
45 }
46
47 /**
48 * @return startNode
49 */
50 public final NodeData getStartNode()
51 {
52 return this.startNode;
53 }
54
55 /**
56 * @return endNode
57 */
58 public final NodeData getEndNode()
59 {
60 return this.endNode;
61 }
62
63 /** {@inheritDoc} */
64 @Override
65 public int hashCode()
66 {
67 final int prime = 31;
68 int result = 1;
69 result = prime * result + ((this.routeName == null) ? 0 : this.routeName.hashCode());
70 return result;
71 }
72
73 /** {@inheritDoc} */
74 @Override
75 public boolean equals(Object obj)
76 {
77 if (this == obj)
78 return true;
79 if (obj == null)
80 return false;
81 if (getClass() != obj.getClass())
82 return false;
83 RouteData other = (RouteData) obj;
84 if (this.routeName == null)
85 {
86 if (other.routeName != null)
87 return false;
88 }
89 else if (!this.routeName.equals(other.routeName))
90 return false;
91 return true;
92 }
93
94 /** {@inheritDoc} */
95 @Override
96 public String toString()
97 {
98 return "RouteData [routeName=" + this.routeName + ", startNode=" + this.startNode + ", endNode=" + this.endNode + "]";
99 }
100
101 }