All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opentripplanner.routing.alertpatch.EntityKey Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.routing.alertpatch;

import org.opentripplanner.transit.model.framework.FeedScopedId;
import org.opentripplanner.transit.model.timetable.Direction;

/**
 * This encompasses many different kinds of entity keys, all of which are simple record types, all
 * grouped together as the only allowed implementations of a sealed marker interface. These key
 * types represent various combinations used to look up Alerts that might be associated with a
 * particular stop, or a stop on a route, or all routes of a certain type etc.
 */
public sealed interface EntityKey {
  record Agency(FeedScopedId agencyId) implements EntityKey {}

  record Stop(FeedScopedId stopId) implements EntityKey {}

  record Route(FeedScopedId routeId) implements EntityKey {}

  record Trip(FeedScopedId tripId) implements EntityKey {}

  record StopAndRoute(FeedScopedId stopId, FeedScopedId routeId) implements EntityKey {}

  record StopAndTrip(FeedScopedId stopId, FeedScopedId tripId) implements EntityKey {}

  record Unknown() implements EntityKey {}

  record RouteType(String feedId, int routeType) implements EntityKey {}

  record RouteTypeAndAgency(FeedScopedId agencyId, int routeType) implements EntityKey {}

  record DirectionAndRoute(FeedScopedId routeId, Direction direction) implements EntityKey {}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy