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 public class InfrastructureLaneChangeInfoToledo extends InfrastructureLaneChangeInfo implements Serializable
23 {
24
25
26 private static final long serialVersionUID = 20160811L;
27
28
29 private final int splitNumber;
30
31
32
33
34
35
36
37 public InfrastructureLaneChangeInfoToledo(final int requiredNumberOfLaneChanges, final LaneStructureRecord record,
38 final int splitNumber) throws GtuException
39 {
40 super(requiredNumberOfLaneChanges, record, RelativePosition.REFERENCE_POSITION, splitNumber > 0,
41 LateralDirectionality.NONE);
42 Throw.when(splitNumber <= 0, GtuException.class, "Split number should be at least 1.");
43 this.splitNumber = splitNumber;
44 }
45
46
47
48
49
50 public final boolean forSplit()
51 {
52 return this.splitNumber > 0;
53 }
54
55
56
57
58
59 public final int getSplitNumber()
60 {
61 return this.splitNumber;
62 }
63
64
65 @Override
66 public final String toString()
67 {
68 return "InfrastructureLaneChangeInfoToledo [requiredNumberOfLaneChanges=" + getRequiredNumberOfLaneChanges()
69 + ", remainingDistance=" + getRemainingDistance() + ", split=" + this.splitNumber + "]";
70 }
71 }