1 package org.opentrafficsim.road.gtu.lane.tactical.toledo;
2
3 import java.io.Serializable;
4
5 import org.djutils.exceptions.Throw;
6 import org.opentrafficsim.core.gtu.GTUException;
7 import org.opentrafficsim.core.gtu.RelativePosition;
8 import org.opentrafficsim.core.network.LateralDirectionality;
9 import org.opentrafficsim.road.gtu.lane.perception.InfrastructureLaneChangeInfo;
10 import org.opentrafficsim.road.gtu.lane.perception.LaneStructureRecord;
11
12
13
14
15
16
17
18
19
20
21
22
23 public class InfrastructureLaneChangeInfoToledo extends InfrastructureLaneChangeInfo implements Serializable
24 {
25
26
27 private static final long serialVersionUID = 20160811L;
28
29
30 private final int splitNumber;
31
32
33
34
35
36
37
38 public InfrastructureLaneChangeInfoToledo(final int requiredNumberOfLaneChanges, final LaneStructureRecord record,
39 final int splitNumber) throws GTUException
40 {
41 super(requiredNumberOfLaneChanges, record, RelativePosition.REFERENCE_POSITION, splitNumber > 0,
42 LateralDirectionality.NONE);
43 Throw.when(splitNumber <= 0, GTUException.class, "Split number should be at least 1.");
44 this.splitNumber = splitNumber;
45 }
46
47
48
49
50
51 public final boolean forSplit()
52 {
53 return this.splitNumber > 0;
54 }
55
56
57
58
59
60 public final int getSplitNumber()
61 {
62 return this.splitNumber;
63 }
64
65
66 @Override
67 public final String toString()
68 {
69 return "InfrastructureLaneChangeInfoToledo [requiredNumberOfLaneChanges=" + getRequiredNumberOfLaneChanges()
70 + ", remainingDistance=" + getRemainingDistance() + ", split=" + this.splitNumber + "]";
71 }
72 }