Passenger.java (958B) download
1package osm.routing.entity;
2
3import java.util.AbstractList;
4
5public class Passenger<T> extends AbstractList<T> {
6 public final Interval startTime;
7 public final T startPoint;
8 public final Interval targetTime;
9 public final T targetPoint;
10
11 public Passenger(T start, Interval startTime, T target, Interval targetTime) {
12 startPoint = start;
13 this.startTime = startTime;
14 targetPoint = target;
15 this.targetTime = targetTime;
16 }
17
18 public Passenger(T start, T target) {
19 startPoint = start;
20 this.startTime = null;
21 targetPoint = target;
22 this.targetTime = null;
23 }
24
25 @Override
26 public T get(int i) {
27 return switch (i) {
28 case 0 -> startPoint;
29 case 1 -> targetPoint;
30 default -> throw new IndexOutOfBoundsException("Passenger can only hold 2 points");
31 };
32 }
33
34 @Override
35 public int size() {
36 return 2;
37 }
38}