1 package org.opentrafficsim.road.gtu.lane.perception.headway;
2
3 import org.djunits.value.vdouble.scalar.Length;
4 import org.djutils.exceptions.Throw;
5 import org.opentrafficsim.core.gtu.GtuException;
6 import org.opentrafficsim.road.network.lane.object.trafficlight.TrafficLight;
7 import org.opentrafficsim.road.network.lane.object.trafficlight.TrafficLightColor;
8
9
10
11
12
13
14
15
16
17
18 public class HeadwayTrafficLightReal extends AbstractHeadwayLaneBasedObject implements HeadwayTrafficLight
19 {
20
21 private static final long serialVersionUID = 20160410L;
22
23
24 private final TrafficLight trafficLight;
25
26
27 private final boolean turnOnRed;
28
29
30
31
32
33
34
35
36
37 public HeadwayTrafficLightReal(final TrafficLight trafficLight, final Length distance, final boolean turnOnRed)
38 throws GtuException
39 {
40 super(ObjectType.TRAFFICLIGHT, id(trafficLight), distance, trafficLight.getLane());
41 this.trafficLight = trafficLight;
42 this.turnOnRed = turnOnRed;
43 }
44
45
46
47
48
49
50
51 private static String id(final TrafficLight trafficLight) throws GtuException
52 {
53 Throw.when(trafficLight == null, GtuException.class, "Headway constructor: trafficLight == null");
54 return trafficLight.getId();
55 }
56
57 @Override
58 public final TrafficLightColor getTrafficLightColor()
59 {
60 return this.trafficLight.getTrafficLightColor();
61 }
62
63 @Override
64 public final boolean canTurnOnRed()
65 {
66 return this.turnOnRed;
67 }
68
69 @Override
70 public final String toString()
71 {
72 return "HeadwayTrafficLight [trafficLight=" + this.trafficLight + "]";
73 }
74 }