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

org.opentripplanner.routing.vehicle_parking.VehicleParkingEntrance Maven / Gradle / Ivy

package org.opentripplanner.routing.vehicle_parking;

import java.io.Serializable;
import java.util.Objects;
import org.opentripplanner.routing.vertextype.StreetVertex;
import org.opentripplanner.transit.model.basic.I18NString;
import org.opentripplanner.transit.model.basic.WgsCoordinate;
import org.opentripplanner.transit.model.framework.FeedScopedId;
import org.opentripplanner.util.lang.ToStringBuilder;

public class VehicleParkingEntrance implements Serializable {

  private final VehicleParking vehicleParking;

  private final FeedScopedId entranceId;

  private final WgsCoordinate coordinate;

  private final I18NString name;
  // If this entrance should be linked to car accessible streets
  private final boolean carAccessible;
  // If this entrance should be linked to walk/bike accessible streets
  private final boolean walkAccessible;
  // Used to explicitly specify the intersection to link to instead of using (x, y)
  private transient StreetVertex vertex;

  VehicleParkingEntrance(
    VehicleParking vehicleParking,
    FeedScopedId entranceId,
    WgsCoordinate coordinate,
    I18NString name,
    StreetVertex vertex,
    boolean carAccessible,
    boolean walkAccessible
  ) {
    this.vehicleParking = vehicleParking;
    this.entranceId = entranceId;
    this.coordinate = coordinate;
    this.name = name;
    this.vertex = vertex;
    this.carAccessible = carAccessible;
    this.walkAccessible = walkAccessible;
  }

  public static VehicleParkingEntranceBuilder builder() {
    return new VehicleParkingEntranceBuilder();
  }

  public VehicleParking getVehicleParking() {
    return vehicleParking;
  }

  public FeedScopedId getEntranceId() {
    return entranceId;
  }

  public WgsCoordinate getCoordinate() {
    return coordinate;
  }

  public I18NString getName() {
    return name;
  }

  public StreetVertex getVertex() {
    return vertex;
  }

  public boolean isCarAccessible() {
    return carAccessible;
  }

  public boolean isWalkAccessible() {
    return walkAccessible;
  }

  @Override
  public int hashCode() {
    return Objects.hash(entranceId, coordinate, name, carAccessible, walkAccessible);
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    final VehicleParkingEntrance that = (VehicleParkingEntrance) o;
    return (
      Objects.equals(coordinate, that.coordinate) &&
      carAccessible == that.carAccessible &&
      walkAccessible == that.walkAccessible &&
      Objects.equals(entranceId, that.entranceId) &&
      Objects.equals(name, that.name)
    );
  }

  public String toString() {
    return ToStringBuilder
      .of(VehicleParkingEntrance.class)
      .addObj("entranceId", entranceId)
      .addObj("name", name)
      .addObj("coordinate", coordinate)
      .addBool("carAccessible", carAccessible)
      .addBool("walkAccessible", walkAccessible)
      .toString();
  }

  void clearVertex() {
    vertex = null;
  }

  public static class VehicleParkingEntranceBuilder {

    private VehicleParking vehicleParking;
    private FeedScopedId entranceId;
    private WgsCoordinate coordinate;
    private I18NString name;
    private StreetVertex vertex;
    private boolean carAccessible;
    private boolean walkAccessible;

    VehicleParkingEntranceBuilder() {}

    public VehicleParkingEntranceBuilder vehicleParking(VehicleParking vehicleParking) {
      this.vehicleParking = vehicleParking;
      return this;
    }

    public VehicleParkingEntranceBuilder entranceId(FeedScopedId entranceId) {
      this.entranceId = entranceId;
      return this;
    }

    public VehicleParkingEntranceBuilder coordinate(WgsCoordinate coordinate) {
      this.coordinate = coordinate;
      return this;
    }

    public VehicleParkingEntranceBuilder name(I18NString name) {
      this.name = name;
      return this;
    }

    public VehicleParkingEntranceBuilder vertex(StreetVertex vertex) {
      this.vertex = vertex;
      return this;
    }

    public VehicleParkingEntranceBuilder carAccessible(boolean carAccessible) {
      this.carAccessible = carAccessible;
      return this;
    }

    public VehicleParkingEntranceBuilder walkAccessible(boolean walkAccessible) {
      this.walkAccessible = walkAccessible;
      return this;
    }

    public VehicleParkingEntrance build() {
      return new VehicleParkingEntrance(
        vehicleParking,
        entranceId,
        coordinate,
        name,
        vertex,
        carAccessible,
        walkAccessible
      );
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy