private void init() { this.gtfsFeedIds = data.getHashSet("gtfsFeeds"); this.operatingDayPatterns = data.getHashMap("validities"); this.timeZones = data.getHashMap("timeZones"); Map<Integer, FeedIdWithTimezone> readableTimeZones = new HashMap<>(); for (Map.Entry<FeedIdWithTimezone, Integer> entry : this.timeZones.entrySet()) { readableTimeZones.put(entry.getValue(), entry.getKey()); } Bind.mapInverse(this.timeZones, readableTimeZones); this.readableTimeZones = Collections.unmodifiableMap(readableTimeZones); this.tripDescriptors = data.getTreeMap("tripDescriptors"); this.stopSequences = data.getTreeMap("stopSequences"); this.fares = data.getTreeMap("fares"); this.boardEdgesForTrip = data.getHashMap("boardEdgesForTrip"); this.leaveEdgesForTrip = data.getHashMap("leaveEdgesForTrip"); this.stationNodes = data.getHashMap("stationNodes"); this.routes = data.getHashMap("routes"); }
Bind.histogram(stop_times, stopCountByStopTime, (key, stopTime) -> stopTime.stop_id); Bind.secondaryKeys(stop_times, stopStopTimeSet, (key, stopTime) -> new String[] {stopTime.stop_id}); LOG.info("Building trips per service index"); Bind.secondaryKeys(trips, tripsPerService, (key, trip) -> new String[] {trip.service_id}); LOG.info("Building services per date index"); Bind.secondaryKeys(services, servicesPerDate, (key, service) -> {
.makeOrGet(); Bind.secondaryKeys(relations, relationsByNode, (k, r) -> r.members.stream().filter(m -> m.type == OSMEntity.Type.NODE).map(m -> m.id).toArray(i -> new Long[i])); Bind.secondaryKeys(relations, relationsByWay, (k, r) -> r.members.stream().filter(m -> m.type == OSMEntity.Type.WAY).map(m -> m.id).toArray(i -> new Long[i])); Bind.secondaryKeys(relations, relationsByRelation, (k, r) -> r.members.stream().filter(m -> m.type == OSMEntity.Type.RELATION).map(m -> m.id).toArray(i -> new Long[i]));
@Override public IndexHits<Long> get(String key, Object value) { final Iterable<Long> values = Bind.findSecondaryKeys(getSet(key), value); return new LongIterableIndexHits(values); }
Bind.mapInverse(this.keysByValue, this.valuesByKey);
Bind.mapInverse(this.keysByValue, this.valuesByKey);