1 package org.opentrafficsim.road.gtu.lane.perception.headway;
2
3 import java.util.Set;
4
5 import org.djunits.value.vdouble.scalar.Length;
6 import org.opentrafficsim.core.gtu.GTUException;
7 import org.opentrafficsim.road.gtu.lane.perception.RelativeLane;
8 import org.opentrafficsim.road.network.lane.object.BusStop;
9
10 import nl.tudelft.simulation.immutablecollections.ImmutableSet;
11
12 /**
13 * <p>
14 * Copyright (c) 2013-2017 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
15 * BSD-style license. See <a href="http://opentrafficsim.org/node/13">OpenTrafficSim License</a>.
16 * <p>
17 * @version $Revision$, $LastChangedDate$, by $Author$, initial version 27 jan. 2017 <br>
18 * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
19 * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a>
20 * @author <a href="http://www.transport.citg.tudelft.nl">Wouter Schakel</a>
21 */
22 public class HeadwayBusStop extends AbstractHeadwayCopy
23 {
24
25 /** */
26 private static final long serialVersionUID = 20170127L;
27
28 /** Relative lane. */
29 private final RelativeLane relativeLane;
30
31 /** Lines. */
32 private final ImmutableSet<String> lines;
33
34 /** Conflicts downstream of the bus stop. */
35 private final Set<String> conflictIds;
36
37 /**
38 * @param busStop bus stop
39 * @param distance distance
40 * @param relativeLane relative lane
41 * @param conflictIds conflicts downstream of the bus stop
42 * @throws GTUException when id is null, or parameters are inconsistent
43 */
44 public HeadwayBusStop(final BusStop busStop, final Length distance, final RelativeLane relativeLane,
45 final Set<String> conflictIds) throws GTUException
46 {
47 super(ObjectType.BUSSTOP, busStop.getId(), distance);
48 this.relativeLane = relativeLane;
49 this.lines = busStop.getLines();
50 this.conflictIds = conflictIds;
51 }
52
53 /**
54 * @return relativeLane.
55 */
56 public RelativeLane getRelativeLane()
57 {
58 return this.relativeLane;
59 }
60
61 /**
62 * @return lines.
63 */
64 public ImmutableSet<String> getLines()
65 {
66 return this.lines;
67 }
68
69 /**
70 * @return conflictIds.
71 */
72 public Set<String> getConflictIds()
73 {
74 return this.conflictIds;
75 }
76
77 }