1 package org.opentrafficsim.road.network.sampling;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.djunits.value.vdouble.scalar.Length;
7 import org.opentrafficsim.kpi.interfaces.LinkData;
8 import org.opentrafficsim.road.network.lane.CrossSectionLink;
9 import org.opentrafficsim.road.network.lane.Lane;
10
11
12
13
14
15
16
17
18
19
20
21 public class LinkDataRoad implements LinkData<LaneDataRoad>
22 {
23
24
25 private final CrossSectionLink link;
26
27
28
29
30
31 public LinkDataRoad(final CrossSectionLink link)
32 {
33 this.link = link;
34 }
35
36
37
38
39
40 public final CrossSectionLink getLink()
41 {
42 return this.link;
43 }
44
45 @Override
46 public final List<LaneDataRoad> getLanes()
47 {
48 List<LaneDataRoad> lanes = new ArrayList<>();
49 for (Lane lane : this.link.getLanes())
50 {
51 lanes.add(new LaneDataRoad(lane));
52 }
53 return lanes;
54 }
55
56 @Override
57 public final Length getLength()
58 {
59 return this.link.getLength();
60 }
61
62 @Override
63 public final String getId()
64 {
65 return this.link.getId();
66 }
67
68 @Override
69 public final int hashCode()
70 {
71 final int prime = 31;
72 int result = 1;
73 result = prime * result + ((this.link == null) ? 0 : this.link.hashCode());
74 return result;
75 }
76
77 @Override
78 public final boolean equals(final Object obj)
79 {
80 if (this == obj)
81 {
82 return true;
83 }
84 if (obj == null)
85 {
86 return false;
87 }
88 if (getClass() != obj.getClass())
89 {
90 return false;
91 }
92 LinkDataRoad other = (LinkDataRoad) obj;
93 if (this.link == null)
94 {
95 if (other.link != null)
96 {
97 return false;
98 }
99 }
100 else if (!this.link.equals(other.link))
101 {
102 return false;
103 }
104 return true;
105 }
106
107 @Override
108 public final String toString()
109 {
110 return "LinkData [link=" + this.link + "]";
111 }
112
113 }