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

org.opentripplanner.graph_builder.module.TransferParameters Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.graph_builder.module;

import java.time.Duration;
import org.opentripplanner.utils.tostring.ToStringBuilder;

/**
 * Mode-specific parameters for transfers.
 */
public record TransferParameters(
  Duration maxTransferDuration,
  Duration carsAllowedStopMaxTransferDuration,
  boolean disableDefaultTransfers
) {
  public static final Duration DEFAULT_MAX_TRANSFER_DURATION = null;
  public static final Duration DEFAULT_CARS_ALLOWED_STOP_MAX_TRANSFER_DURATION = null;
  public static final boolean DEFAULT_DISABLE_DEFAULT_TRANSFERS = false;

  TransferParameters(Builder builder) {
    this(
      builder.maxTransferDuration,
      builder.carsAllowedStopMaxTransferDuration,
      builder.disableDefaultTransfers
    );
  }

  public String toString() {
    return ToStringBuilder.of(getClass())
      .addDuration("maxTransferDuration", maxTransferDuration)
      .addDuration("carsAllowedStopMaxTransferDuration", carsAllowedStopMaxTransferDuration)
      .addBool("disableDefaultTransfers", disableDefaultTransfers)
      .toString();
  }

  public static class Builder {

    private Duration maxTransferDuration;
    private Duration carsAllowedStopMaxTransferDuration;
    private boolean disableDefaultTransfers;

    public Builder() {
      this.maxTransferDuration = DEFAULT_MAX_TRANSFER_DURATION;
      this.carsAllowedStopMaxTransferDuration = DEFAULT_CARS_ALLOWED_STOP_MAX_TRANSFER_DURATION;
      this.disableDefaultTransfers = DEFAULT_DISABLE_DEFAULT_TRANSFERS;
    }

    public Builder withMaxTransferDuration(Duration maxTransferDuration) {
      this.maxTransferDuration = maxTransferDuration;
      return this;
    }

    public Builder withCarsAllowedStopMaxTransferDuration(
      Duration carsAllowedStopMaxTransferDuration
    ) {
      this.carsAllowedStopMaxTransferDuration = carsAllowedStopMaxTransferDuration;
      return this;
    }

    public Builder withDisableDefaultTransfers(boolean disableDefaultTransfers) {
      this.disableDefaultTransfers = disableDefaultTransfers;
      return this;
    }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy