
org.opentripplanner.apis.gtfs.datafetchers.BookingInfoImpl Maven / Gradle / Ivy
The newest version!
package org.opentripplanner.apis.gtfs.datafetchers;
import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import java.time.Duration;
import org.opentripplanner.apis.gtfs.generated.GraphQLDataFetchers;
import org.opentripplanner.transit.model.organization.ContactInfo;
import org.opentripplanner.transit.model.timetable.booking.BookingInfo;
import org.opentripplanner.transit.model.timetable.booking.BookingTime;
public class BookingInfoImpl implements GraphQLDataFetchers.GraphQLBookingInfo {
@Override
public DataFetcher contactInfo() {
return environment -> getSource(environment).getContactInfo();
}
@Override
public DataFetcher dropOffMessage() {
return environment -> getSource(environment).getDropOffMessage();
}
@Override
public DataFetcher earliestBookingTime() {
return environment -> getSource(environment).getEarliestBookingTime();
}
@Override
public DataFetcher latestBookingTime() {
return environment -> getSource(environment).getLatestBookingTime();
}
@Override
public DataFetcher maximumBookingNotice() {
return env -> getSource(env).getMaximumBookingNotice().orElse(null);
}
@Override
public DataFetcher maximumBookingNoticeSeconds() {
return environment ->
getSource(environment).getMaximumBookingNotice().map(Duration::toSeconds).orElse(null);
}
@Override
public DataFetcher message() {
return environment -> getSource(environment).getMessage();
}
@Override
public DataFetcher minimumBookingNotice() {
return env -> getSource(env).getMinimumBookingNotice().orElse(null);
}
@Override
public DataFetcher minimumBookingNoticeSeconds() {
return environment ->
getSource(environment).getMinimumBookingNotice().map(Duration::toSeconds).orElse(null);
}
@Override
public DataFetcher pickupMessage() {
return environment -> getSource(environment).getPickupMessage();
}
private BookingInfo getSource(DataFetchingEnvironment environment) {
return environment.getSource();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy