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

org.opentripplanner.ext.restapi.mapping.BookingInfoMapper Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.ext.restapi.mapping;

import org.opentripplanner.ext.restapi.model.ApiBookingInfo;
import org.opentripplanner.transit.model.timetable.booking.BookingInfo;

public class BookingInfoMapper {

  static ApiBookingInfo mapBookingInfoForPickup(BookingInfo info) {
    return mapBookingInfo(info, true);
  }

  static ApiBookingInfo mapBookingInfoForDropOff(BookingInfo info) {
    return mapBookingInfo(info, false);
  }

  /**
   * @param isPickup either pickup or dropOff message must be set, not both. We only want to show
   *                 the pick-up message for pickups, and the drop-off message for drop-offs.
   */
  private static ApiBookingInfo mapBookingInfo(BookingInfo info, boolean isPickup) {
    if (info == null) {
      return null;
    }

    return new ApiBookingInfo(
      ContactInfoMapper.mapContactInfo(info.getContactInfo()),
      BookingMethodMapper.mapBookingMethods(info.bookingMethods()),
      BookingTimeMapper.mapBookingTime(info.getEarliestBookingTime()),
      BookingTimeMapper.mapBookingTime(info.getLatestBookingTime()),
      info.getMinimumBookingNotice().orElse(null),
      info.getMaximumBookingNotice().orElse(null),
      info.getMessage(),
      isPickup ? info.getPickupMessage() : null,
      !isPickup ? info.getDropOffMessage() : null
    );
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy