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

org.opentripplanner.model.plan.ScheduledTransitLegBuilder Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.model.plan;

import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.List;
import java.util.Objects;
import java.util.OptionalDouble;
import java.util.Set;
import org.opentripplanner.model.fare.FareProductUse;
import org.opentripplanner.model.transfer.ConstrainedTransfer;
import org.opentripplanner.routing.alertpatch.TransitAlert;
import org.opentripplanner.transit.model.network.TripPattern;
import org.opentripplanner.transit.model.timetable.TripOnServiceDate;
import org.opentripplanner.transit.model.timetable.TripTimes;

public class ScheduledTransitLegBuilder> {

  private TripTimes tripTimes;
  private TripPattern tripPattern;
  private int boardStopIndexInPattern;
  private int alightStopIndexInPattern;
  private ZonedDateTime startTime;
  private ZonedDateTime endTime;
  private LocalDate serviceDate;
  private ZoneId zoneId;
  private TripOnServiceDate tripOnServiceDate;
  private ConstrainedTransfer transferFromPreviousLeg;
  private ConstrainedTransfer transferToNextLeg;
  private int generalizedCost;
  private Float accessibilityScore;
  private Set alerts = Set.of();
  private Double distanceMeters;
  private List fareProducts = List.of();

  public ScheduledTransitLegBuilder() {}

  public ScheduledTransitLegBuilder(ScheduledTransitLeg original) {
    tripTimes = original.getTripTimes();
    tripPattern = original.getTripPattern();
    boardStopIndexInPattern = original.getBoardStopPosInPattern();
    alightStopIndexInPattern = original.getAlightStopPosInPattern();
    startTime = original.getStartTime();
    endTime = original.getEndTime();
    serviceDate = original.getServiceDate();
    tripOnServiceDate = original.getTripOnServiceDate();
    transferFromPreviousLeg = original.getTransferFromPrevLeg();
    transferToNextLeg = original.getTransferToNextLeg();
    generalizedCost = original.getGeneralizedCost();
    accessibilityScore = original.accessibilityScore();
    zoneId = original.getZoneId();
    alerts = original.getTransitAlerts();
    distanceMeters = original.getDistanceMeters();
    fareProducts = original.fareProducts();
  }

  public B withTripTimes(TripTimes tripTimes) {
    this.tripTimes = tripTimes;
    return instance();
  }

  public TripTimes tripTimes() {
    return tripTimes;
  }

  public B withTripPattern(TripPattern tripPattern) {
    this.tripPattern = tripPattern;
    return instance();
  }

  public TripPattern tripPattern() {
    return tripPattern;
  }

  public B withBoardStopIndexInPattern(int boardStopIndexInPattern) {
    this.boardStopIndexInPattern = boardStopIndexInPattern;
    return instance();
  }

  public int boardStopIndexInPattern() {
    return boardStopIndexInPattern;
  }

  public B withAlightStopIndexInPattern(int alightStopIndexInPattern) {
    this.alightStopIndexInPattern = alightStopIndexInPattern;
    return instance();
  }

  public int alightStopIndexInPattern() {
    return alightStopIndexInPattern;
  }

  public B withStartTime(ZonedDateTime startTime) {
    this.startTime = startTime;
    return instance();
  }

  public ZonedDateTime startTime() {
    return startTime;
  }

  public B withEndTime(ZonedDateTime endTime) {
    this.endTime = endTime;
    return instance();
  }

  public ZonedDateTime endTime() {
    return endTime;
  }

  public B withServiceDate(LocalDate serviceDate) {
    this.serviceDate = serviceDate;
    return instance();
  }

  public LocalDate serviceDate() {
    return serviceDate;
  }

  public B withZoneId(ZoneId zoneId) {
    this.zoneId = zoneId;
    return instance();
  }

  public ZoneId zoneId() {
    return zoneId;
  }

  public B withTripOnServiceDate(TripOnServiceDate tripOnServiceDate) {
    this.tripOnServiceDate = tripOnServiceDate;
    return instance();
  }

  public TripOnServiceDate tripOnServiceDate() {
    return tripOnServiceDate;
  }

  public B withTransferFromPreviousLeg(ConstrainedTransfer transferFromPreviousLeg) {
    this.transferFromPreviousLeg = transferFromPreviousLeg;
    return instance();
  }

  public ConstrainedTransfer transferFromPreviousLeg() {
    return transferFromPreviousLeg;
  }

  public B withTransferToNextLeg(ConstrainedTransfer transferToNextLeg) {
    this.transferToNextLeg = transferToNextLeg;
    return instance();
  }

  public ConstrainedTransfer transferToNextLeg() {
    return transferToNextLeg;
  }

  public B withGeneralizedCost(int generalizedCost) {
    this.generalizedCost = generalizedCost;
    return instance();
  }

  public int generalizedCost() {
    return generalizedCost;
  }

  public B withAccessibilityScore(Float accessibilityScore) {
    this.accessibilityScore = accessibilityScore;
    return instance();
  }

  public Float accessibilityScore() {
    return accessibilityScore;
  }

  public B withAlerts(Set alerts) {
    this.alerts = Objects.requireNonNull(alerts);
    return instance();
  }

  public Set alerts() {
    return alerts;
  }

  public B withDistanceMeters(double distance) {
    this.distanceMeters = distance;
    return instance();
  }

  public Double distanceMeters() {
    return distanceMeters;
  }

  public List fareProducts() {
    return fareProducts;
  }

  public B withFareProducts(List fareProducts) {
    this.fareProducts = Objects.requireNonNull(fareProducts);
    return instance();
  }

  public ScheduledTransitLeg build() {
    return new ScheduledTransitLeg(this);
  }

  final B instance() {
    return (B) this;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy