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

org.opentripplanner.transit.api.request.FindRoutesRequestBuilder Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.transit.api.request;

import java.util.List;
import javax.annotation.Nullable;
import org.opentripplanner.transit.api.model.FilterValues;
import org.opentripplanner.transit.model.basic.TransitMode;

public class FindRoutesRequestBuilder {

  private boolean flexibleOnly;
  private String longName;
  private String shortName;
  private FilterValues shortNames = FilterValues.ofEmptyIsEverything(
    "shortNames",
    List.of()
  );
  private FilterValues transitModes = FilterValues.ofEmptyIsEverything(
    "transitModes",
    List.of()
  );
  private FilterValues agencies = FilterValues.ofEmptyIsEverything("agencies", List.of());

  protected FindRoutesRequestBuilder() {}

  public FindRoutesRequestBuilder withAgencies(FilterValues agencies) {
    this.agencies = agencies;
    return this;
  }

  public FindRoutesRequestBuilder withFlexibleOnly(boolean flexibleOnly) {
    this.flexibleOnly = flexibleOnly;
    return this;
  }

  public FindRoutesRequestBuilder withLongName(@Nullable String longName) {
    this.longName = longName;
    return this;
  }

  public FindRoutesRequestBuilder withShortName(@Nullable String shortName) {
    this.shortName = shortName;
    return this;
  }

  public FindRoutesRequestBuilder withShortNames(FilterValues shortNames) {
    this.shortNames = shortNames;
    return this;
  }

  public FindRoutesRequestBuilder withTransitModes(FilterValues transitModes) {
    this.transitModes = transitModes;
    return this;
  }

  public FindRoutesRequest build() {
    return new FindRoutesRequest(
      flexibleOnly,
      longName,
      shortName,
      shortNames,
      transitModes,
      agencies
    );
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy