21 package org.matsim.core.trafficmonitoring;
41 class ArrayBasedDataContainerProvider
implements DataContainerProvider {
43 private final TravelTimeData[] arrayLinkData;
44 private final DataContainerProvider delegate;
46 public ArrayBasedDataContainerProvider(Map<
Id<Link>, TravelTimeData> linkData, TravelTimeDataFactory ttDataFactory,
48 this.arrayLinkData =
new TravelTimeData[network.
getLinks().size()];
49 this.delegate =
new MapBasedDataContainerProvider(linkData, ttDataFactory);
57 public TravelTimeData getTravelTimeData(
final Id<Link> linkId,
final boolean createIfMissing) {
58 return this.delegate.getTravelTimeData(linkId, createIfMissing);
68 public TravelTimeData getTravelTimeData(
Link link,
boolean createIfMissing) {
70 int index = ((HasIndex) link).getArrayIndex();
71 TravelTimeData data = this.arrayLinkData[index];
73 data = this.delegate.getTravelTimeData(link, createIfMissing);
74 this.arrayLinkData[index] = data;
78 return this.delegate.getTravelTimeData(link, createIfMissing);
Map< Id< Link >, ? extends Link > getLinks()