1 package org.opentrafficsim.road.gtu.lane.perception;
2
3 import java.util.Iterator;
4 import java.util.TreeSet;
5 import java.util.function.Supplier;
6
7 import org.opentrafficsim.core.network.OTSNetwork;
8 import org.opentrafficsim.road.gtu.lane.LaneBasedGTU;
9 import org.opentrafficsim.road.gtu.lane.perception.headway.Headway;
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 @Deprecated
25 public class SortedSetPerceptionIterable<H extends Headway> extends TreeSet<H> implements PerceptionCollectable<H, LaneBasedGTU>
26 {
27
28
29 private static final long serialVersionUID = 20180219L;
30
31
32 private final OTSNetwork network;
33
34
35
36
37
38 public SortedSetPerceptionIterable(final OTSNetwork otsNetwork)
39 {
40 this.network = otsNetwork;
41 }
42
43
44 @Override
45 public <C, I> C collect(final Supplier<I> identity, final PerceptionAccumulator<? super LaneBasedGTU, I> accumulator,
46 final PerceptionFinalizer<C, I> finalizer)
47 {
48 Intermediate<I> intermediate = new Intermediate<>(identity.get());
49 Iterator<H> it = iterator();
50 while (it.hasNext() && !intermediate.isStop())
51 {
52 H next = it.next();
53 intermediate =
54 accumulator.accumulate(intermediate, (LaneBasedGTU) this.network.getGTU(next.getId()), next.getDistance());
55 intermediate.step();
56 }
57 return finalizer.collect(intermediate.getObject());
58 }
59
60 }