Package is.bokun.queries

Source Code of is.bokun.queries.TransportQuery

package is.bokun.queries;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import is.bokun.dtos.transport.PricingCategoryPassengerSpecificationDto;
import is.bokun.utils.StringUtils;
import org.joda.time.Duration;
import org.joda.time.LocalDate;
import org.joda.time.LocalTime;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class TransportQuery {

    public List<PricingCategoryPassengerSpecificationDto> pricingCategories = new ArrayList<>();
    public Long fareClassId;
    public int passengers;

    public String departureDate;
    public String returnDate;

    public String departureTime;
    public String returnTime;

    public Long sourceStationId, destStationId;
    public Long sourcePickupPlaceId, destPickupPlaceId;

    public List<Long> routeIds = new ArrayList<>();

    public int maxRoutes, maxLegs = 0;
    public int maxPaths = 5;

    public String maxTotalDuration, maxStopoverDuration;

    public RouteWeightType weightType = RouteWeightType.PRICE;

    @JsonIgnore
    public boolean hasFareClass() {
        return fareClassId != null && fareClassId > 0;
    }

    @JsonIgnore
    public boolean hasPricingCategories() {
        return pricingCategories != null && !pricingCategories.isEmpty();
    }

    @JsonIgnore
    public Set<Long> getPricingCategoryIds() {
        Set<Long> ids = new HashSet<>();
        if ( hasPricingCategories() ) {
            for (PricingCategoryPassengerSpecificationDto spec : pricingCategories) {
                ids.add(spec.categoryId);
            }
        }
        return ids;
    }

    @JsonIgnore
    public PricingCategoryPassengerSpecificationDto getPricingCategorySpec(Long pricingCategoryId) {
        for (PricingCategoryPassengerSpecificationDto spec : pricingCategories) {
            if ( spec.categoryId.equals(pricingCategoryId) ) {
                return spec;
            }
        }
        return null;
    }

    @JsonIgnore
    public int passengerCountForPricingCategory(Long pricingCategoryId) {
        PricingCategoryPassengerSpecificationDto spec = getPricingCategorySpec(pricingCategoryId);
        return spec != null ? spec.passengers : 0;
    }

    @JsonIgnore
    public LocalDate getDepartureDateParsed() {
        if ( !StringUtils.isNullOrEmpty(departureDate) ) {
            try {
                return LocalDate.parse(departureDate);
            } catch (Throwable ignored){}
        }
        return null;
    }

    @JsonIgnore
    public LocalTime getDepartureTimeParsed() {
        if ( !StringUtils.isNullOrEmpty(departureTime) ) {
            try {
                return LocalTime.parse(departureTime);
            } catch (Throwable ignored){}
        }
        return null;
    }

    @JsonIgnore
    public LocalDate getReturnDateParsed() {
        if ( !StringUtils.isNullOrEmpty(returnDate) ) {
            try {
                return LocalDate.parse(returnDate);
            } catch (Throwable ignored){}
        }
        return null;
    }

    @JsonIgnore
    public LocalTime getReturnTimeParsed() {
        if ( !StringUtils.isNullOrEmpty(returnTime) ) {
            try {
                return LocalTime.parse(returnTime);
            } catch (Throwable ignored){}
        }
        return null;
    }

    @JsonIgnore
    public Duration getMaxTotalDurationParsed() {
        if ( !StringUtils.isNullOrEmpty(maxTotalDuration) ) {
            try {
                return Duration.parse(maxTotalDuration);
            } catch (Throwable ignored){}
        }
        return null;
    }

    @JsonIgnore
    public Duration getMaxStopoverDurationParsed() {
        if ( !StringUtils.isNullOrEmpty(maxStopoverDuration) ) {
            try {
                return Duration.parse(maxStopoverDuration);
            } catch (Throwable ignored){}
        }
        return null;
    }

    public List<PricingCategoryPassengerSpecificationDto> getPricingCategories() {
        return pricingCategories;
    }

    public void setPricingCategories(List<PricingCategoryPassengerSpecificationDto> pricingCategories) {
        this.pricingCategories = pricingCategories;
    }

    public int getPassengers() {
        return passengers;
    }

    public void setPassengers(int passengers) {
        this.passengers = passengers;
    }

    public Long getFareClassId() {
        return fareClassId;
    }

    public void setFareClassId(Long fareClassId) {
        this.fareClassId = fareClassId;
    }

    public String getDepartureDate() {
        return departureDate;
    }

    public void setDepartureDate(String departureDate) {
        this.departureDate = departureDate;
    }

    public String getDepartureTime() {
        return departureTime;
    }

    public void setDepartureTime(String departureTime) {
        this.departureTime = departureTime;
    }

    public String getReturnTime() {
        return returnTime;
    }

    public void setReturnTime(String returnTime) {
        this.returnTime = returnTime;
    }

    public int getMaxRoutes() {
        return maxRoutes;
    }

    public void setMaxRoutes(int maxRoutes) {
        this.maxRoutes = maxRoutes;
    }

    public int getMaxLegs() {
        return maxLegs;
    }

    public void setMaxLegs(int maxLegs) {
        this.maxLegs = maxLegs;
    }

    public int getMaxPaths() {
        return maxPaths;
    }

    public void setMaxPaths(int maxPaths) {
        this.maxPaths = maxPaths;
    }

    public String getMaxTotalDuration() {
        return maxTotalDuration;
    }

    public void setMaxTotalDuration(String maxTotalDuration) {
        this.maxTotalDuration = maxTotalDuration;
    }

    public String getMaxStopoverDuration() {
        return maxStopoverDuration;
    }

    public void setMaxStopoverDuration(String maxStopoverDuration) {
        this.maxStopoverDuration = maxStopoverDuration;
    }

    public String getReturnDate() {
        return returnDate;
    }

    public void setReturnDate(String returnDate) {
        this.returnDate = returnDate;
    }

    public Long getSourceStationId() {
        return sourceStationId;
    }

    public void setSourceStationId(Long sourceStationId) {
        this.sourceStationId = sourceStationId;
    }

    public Long getDestStationId() {
        return destStationId;
    }

    public void setDestStationId(Long destStationId) {
        this.destStationId = destStationId;
    }

    public Long getSourcePickupPlaceId() {
        return sourcePickupPlaceId;
    }

    public void setSourcePickupPlaceId(Long sourcePickupPlaceId) {
        this.sourcePickupPlaceId = sourcePickupPlaceId;
    }

    public Long getDestPickupPlaceId() {
        return destPickupPlaceId;
    }

    public void setDestPickupPlaceId(Long destPickupPlaceId) {
        this.destPickupPlaceId = destPickupPlaceId;
    }

    public List<Long> getRouteIds() {
        return routeIds;
    }

    public void setRouteIds(List<Long> routeIds) {
        this.routeIds = routeIds;
    }

    public RouteWeightType getWeightType() {
        return weightType;
    }

    public void setWeightType(RouteWeightType weightType) {
        this.weightType = weightType;
    }

}
TOP

Related Classes of is.bokun.queries.TransportQuery

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.