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

org.opentripplanner.service.vehiclerental.model.VehicleRentalVehicle Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.service.vehiclerental.model;

import java.time.Instant;
import java.util.Set;
import org.opentripplanner.framework.i18n.I18NString;
import org.opentripplanner.street.model.RentalFormFactor;
import org.opentripplanner.transit.model.framework.FeedScopedId;

/**
 * Implements the {@link VehicleRentalPlace} class which contains Javadoc.
 */
public class VehicleRentalVehicle implements VehicleRentalPlace {

  public FeedScopedId id;
  public I18NString name;
  public double longitude;
  public double latitude;

  public VehicleRentalSystem system;
  public RentalVehicleType vehicleType;
  public VehicleRentalStationUris rentalUris;
  public boolean isReserved = false;
  public boolean isDisabled = false;
  public Instant lastReported;
  public VehicleRentalStation station;
  public String pricingPlanId;
  public RentalVehicleFuel fuel;

  @Override
  public FeedScopedId getId() {
    return id;
  }

  @Override
  public String getStationId() {
    return getId().getId();
  }

  @Override
  public String getNetwork() {
    return getId().getFeedId();
  }

  @Override
  public I18NString getName() {
    return name;
  }

  @Override
  public double getLongitude() {
    return longitude;
  }

  @Override
  public double getLatitude() {
    return latitude;
  }

  @Override
  public int getVehiclesAvailable() {
    return 1;
  }

  @Override
  public int getSpacesAvailable() {
    return 0;
  }

  @Override
  public Integer getCapacity() {
    return 0;
  }

  @Override
  public boolean isAllowDropoff() {
    return false;
  }

  @Override
  public boolean overloadingAllowed() {
    return false;
  }

  @Override
  public boolean isAllowPickup() {
    return !isDisabled;
  }

  public boolean allowPickupNow() {
    return !isReserved && !isDisabled;
  }

  public boolean allowDropoffNow() {
    return false;
  }

  @Override
  public boolean isFloatingVehicle() {
    return true;
  }

  @Override
  public boolean isCarStation() {
    return vehicleType.formFactor.equals(RentalFormFactor.CAR);
  }

  @Override
  public Set getAvailablePickupFormFactors(boolean includeRealtimeAvailability) {
    return Set.of(vehicleType.formFactor);
  }

  @Override
  public Set getAvailableDropoffFormFactors(boolean includeRealtimeAvailability) {
    return Set.of();
  }

  @Override
  public boolean isArrivingInRentalVehicleAtDestinationAllowed() {
    return false;
  }

  @Override
  public boolean isRealTimeData() {
    return true;
  }

  @Override
  public VehicleRentalStationUris getRentalUris() {
    return rentalUris;
  }

  @Override
  public VehicleRentalSystem getVehicleRentalSystem() {
    return system;
  }

  public RentalVehicleFuel getFuel() {
    return fuel;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy