/*
* This file was generated by openASN.1 - an open source ASN.1 toolkit for java
*
* openASN.1 is Copyright (C) 2007 Clayton Hoss, Marc Weyland
*
* openASN.1 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* openASN.1 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with openASN.1. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.uic.ticket.api.asn.omv2;
import java.util.Date;
import java.util.List;
import net.gcdc.asn1.datatypes.Asn1BigInteger;
import net.gcdc.asn1.datatypes.Asn1Default;
import net.gcdc.asn1.datatypes.Asn1Optional;
import net.gcdc.asn1.datatypes.CharacterRestriction;
import net.gcdc.asn1.datatypes.HasExtensionMarker;
import net.gcdc.asn1.datatypes.IntRange;
import net.gcdc.asn1.datatypes.RestrictedString;
import net.gcdc.asn1.datatypes.Sequence;
import net.gcdc.asn1.datatypes.SizeRange;
import net.gcdc.asn1.datatypesimpl.SequenceOfStringIA5;
@Sequence
@HasExtensionMarker
public class ReservationData extends Object {
public ReservationData() {
}
@Asn1Optional public Asn1BigInteger trainNum;
@RestrictedString(CharacterRestriction.IA5String)
@Asn1Optional public String trainIA5;
@Asn1Default(value="0")
@IntRange(minValue=-1,maxValue=370)
@Asn1Optional public Long departureDate;
@RestrictedString(CharacterRestriction.IA5String)
@Asn1Optional public String referenceIA5;
@Asn1Optional public Asn1BigInteger referenceNum;
@IntRange(minValue=1,maxValue=32000)
@Asn1Optional public Long productOwnerNum;
@RestrictedString(CharacterRestriction.IA5String)
@Asn1Optional public String productOwnerIA5;
@IntRange(minValue=0,maxValue=65535)
@Asn1Optional public Long productIdNum;
@RestrictedString(CharacterRestriction.IA5String)
@Asn1Optional public String productIdIA5;
@IntRange(minValue=0,maxValue=32000)
@Asn1Optional public Long serviceBrand;
@RestrictedString(CharacterRestriction.UTF8String)
@Asn1Optional public String serviceBrandAbrUTF8;
@RestrictedString(CharacterRestriction.UTF8String)
@Asn1Optional public String serviceBrandNameUTF8;
@Asn1Default("seat")
@Asn1Optional public ServiceType service;
@Asn1Default("stationUICReservation")
@Asn1Optional public CodeTableType stationCodeTable;
@IntRange(minValue=1,maxValue=9999999)
@Asn1Optional public Long fromStationNum;
@RestrictedString(CharacterRestriction.IA5String)
@Asn1Optional public String fromStationIA5;
@IntRange(minValue=1,maxValue=9999999)
@Asn1Optional public Long toStationNum;
@RestrictedString(CharacterRestriction.IA5String)
@Asn1Optional public String toStationIA5;
@RestrictedString(CharacterRestriction.UTF8String)
@Asn1Optional public String fromStationNameUTF8;
@RestrictedString(CharacterRestriction.UTF8String)
@Asn1Optional public String toStationNameUTF8;
@IntRange(minValue=0,maxValue=1440)
public Long departureTime;
@IntRange(minValue=-60, maxValue=60)
@Asn1Optional public Long departureUTCOffset;
@IntRange(minValue=-1,maxValue=20)
@Asn1Default(value="0")
@Asn1Optional public Long arrivalDate;
@IntRange(minValue=0,maxValue=1439)
@Asn1Optional public Long arrivalTime;
@IntRange(minValue=-60, maxValue=60)
@Asn1Optional public Long arrivalUTCOffset;
@Asn1Optional public SequenceOfCarrierNum carrierNum;
@Asn1Optional public SequenceOfStringIA5 carrierIA5;
@Asn1Default("second")
@Asn1Optional public TravelClassType classCode;
@SizeRange(minValue = 1, maxValue = 2)
@Asn1Optional public String serviceLevel;
@Asn1Optional public PlacesType places;
@Asn1Optional public PlacesType additionalPlaces;
@Asn1Optional public PlacesType bicyclePlaces;
@Asn1Optional public CompartmentDetailsType compartmentDetails;
@IntRange(minValue=0,maxValue=200)
@Asn1Default(value="0")
@Asn1Optional public Long numberOfOverbooked;
@Asn1Optional public SequenceOfBerthDetailData berth;
@Asn1Optional public SequenceOfTariffType tariff;
@Asn1Default("travelPrice")
@Asn1Optional public PriceTypeType priceType;
@Asn1Optional Asn1BigInteger price;
@Asn1Optional SequenceOfVatDetail vatDetails;
@IntRange(minValue=0,maxValue=9)
@Asn1Default("0")
@Asn1Optional public Long typeOfSupplement;
@IntRange(minValue=0,maxValue=200)
@Asn1Default("0")
@Asn1Optional public Long numberOfSupplements;
@Asn1Optional public LuggageRestrictionType luggage;
@RestrictedString(CharacterRestriction.UTF8String)
@Asn1Optional public String infoText;
@Asn1Optional public ExtensionData extension;
public Long getTrainNum() {
return Asn1BigInteger.toLong(this.trainNum);
}
public String getTrainIA5() {
return this.trainIA5;
}
public Long getDepartureDate() {
return this.departureDate;
}
public String getReferenceIA5() {
return this.referenceIA5;
}
public Long getReferenceNum() {
return Asn1BigInteger.toLong(this.referenceNum);
}
public Long getProductOwnerNum() {
return this.productOwnerNum;
}
public String getProductOwnerIA5() {
return this.productOwnerIA5;
}
public Long getProductIdNum() {
return this.productIdNum;
}
public String getProductIdIA5() {
return this.productIdIA5;
}
public Long getServiceBrand() {
return this.serviceBrand;
}
public String getServiceBrandAbrUTF8() {
return this.serviceBrandAbrUTF8;
}
public String getServiceBrandNameUTF8() {
return this.serviceBrandNameUTF8;
}
public ServiceType getService() {
if (service == null){
return ServiceType.seat;
}
return this.service;
}
public CodeTableType getStationCodeTable() {
if (stationCodeTable == null) {
return CodeTableType.stationUICReservation;
}
return this.stationCodeTable;
}
public Long getFromStationNum() {
return this.fromStationNum;
}
public String getFromStationIA5() {
return this.fromStationIA5;
}
public Long getToStationNum() {
return this.toStationNum;
}
public String getToStationIA5() {
return this.toStationIA5;
}
public String getFromStationNameUTF8() {
return this.fromStationNameUTF8;
}
public String getToStationNameUTF8() {
return this.toStationNameUTF8;
}
public Long getDepartureTime() {
return this.departureTime;
}
public Long getArrivalDate() {
if (arrivalDate == null) {
return new Long(0);
}
return this.arrivalDate;
}
public Long getArrivalTime() {
return this.arrivalTime;
}
public List<Long> getCarrierNum() {
return this.carrierNum;
}
public List<String> getCarrierIA5() {
return this.carrierIA5;
}
public TravelClassType getClassCode() {
if (classCode == null) {
return TravelClassType.second;
}
return this.classCode;
}
public String getServiceLevel() {
return this.serviceLevel;
}
public PlacesType getPlaces() {
return this.places;
}
public PlacesType getAdditionalPlaces() {
return this.additionalPlaces;
}
public PlacesType getBicyclePlaces() {
return this.bicyclePlaces;
}
public CompartmentDetailsType getCompartmentDetails() {
return this.compartmentDetails;
}
public Long getNumberOfOverbooked() {
return this.numberOfOverbooked;
}
public List<BerthDetailData> getBerth() {
return this.berth;
}
public List<TariffType> getTariff() {
return this.tariff;
}
public PriceTypeType getPriceType() {
if (priceType == null) {
return PriceTypeType.travelPrice;
}
return this.priceType;
}
public Long getTypeOfSupplement() {
if (typeOfSupplement == null){
return new Long(0);
}
return this.typeOfSupplement;
}
public Long getNumberOfSupplements() {
if (numberOfSupplements == null) {
return new Long(0);
}
return this.numberOfSupplements;
}
public LuggageRestrictionType getLuggage() {
return this.luggage;
}
public String getInfoText() {
return this.infoText;
}
public ExtensionData getExtension() {
return this.extension;
}
public void setTrainNum(Long trainNum) {
this.trainNum = Asn1BigInteger.toAsn1(trainNum);
}
public void setTrainIA5(String trainIA5) {
this.trainIA5 = trainIA5;
}
public void setDepartureDate(Long departureDate) {
this.departureDate = departureDate;
}
public void setReferenceIA5(String referenceIA5) {
this.referenceIA5 = referenceIA5;
}
public void setReferenceNum(Long referenceNum) {
this.referenceNum = Asn1BigInteger.toAsn1(referenceNum);
}
public void setProductOwnerNum(Long productOwnerNum) {
this.productOwnerNum = productOwnerNum;
}
public void setProductOwnerIA5(String productOwnerIA5) {
this.productOwnerIA5 = productOwnerIA5;
}
public void setProductIdNum(Long productIdNum) {
this.productIdNum = productIdNum;
}
public void setProductIdIA5(String productIdIA5) {
this.productIdIA5 = productIdIA5;
}
public void setServiceBrand(Long serviceBrand) {
this.serviceBrand = serviceBrand;
}
public void setServiceBrandAbrUTF8(String serviceBrandAbrUTF8) {
this.serviceBrandAbrUTF8 = serviceBrandAbrUTF8;
}
public void setServiceBrandNameUTF8(String serviceBrandNameUTF8) {
this.serviceBrandNameUTF8 = serviceBrandNameUTF8;
}
public void setService(ServiceType service) {
this.service = service;
}
public void setStationCodeTable(CodeTableType stationCodeTable) {
this.stationCodeTable = stationCodeTable;
}
public void setFromStationNum(Long fromStationNum) {
this.fromStationNum = fromStationNum;
}
public void setFromStationIA5(String fromStationIA5) {
this.fromStationIA5 = fromStationIA5;
}
public void setToStationNum(Long toStationNum) {
this.toStationNum = toStationNum;
}
public void setToStationIA5(String toStationIA5) {
this.toStationIA5 = toStationIA5;
}
public void setFromStationNameUTF8(String fromStationNameUTF8) {
this.fromStationNameUTF8 = fromStationNameUTF8;
}
public void setToStationNameUTF8(String toStationNameUTF8) {
this.toStationNameUTF8 = toStationNameUTF8;
}
public void setDepartureTime(Long departureTime) {
this.departureTime = departureTime;
}
public void setArrivalDate(Long arrivalDate) {
this.arrivalDate = arrivalDate;
}
public void setArrivalTime(Long arrivalTime) {
this.arrivalTime = arrivalTime;
}
public void setCarrierNum(SequenceOfCarrierNum carrierNum) {
this.carrierNum = carrierNum;
}
public void setCarriersNum(List<Long> longs) {
if (longs == null) return;
this.carrierNum = new SequenceOfCarrierNum();
this.carrierNum.addAll(longs);
}
public void setCarrierIA5(SequenceOfStringIA5 carrierIA5) {
this.carrierIA5 = carrierIA5;
}
public void setClassCode(TravelClassType classCode) {
this.classCode = classCode;
}
public void setServiceLevel(String serviceLevel) {
this.serviceLevel = serviceLevel;
}
public void setPlaces(PlacesType places) {
this.places = places;
}
public void setAdditionalPlaces(PlacesType additionalPlaces) {
this.additionalPlaces = additionalPlaces;
}
public void setBicyclePlaces(PlacesType bicyclePlaces) {
this.bicyclePlaces = bicyclePlaces;
}
public void setCompartmentDetails(CompartmentDetailsType compartmentDetails) {
this.compartmentDetails = compartmentDetails;
}
public void setNumberOfOverbooked(Long numberOfOverbooked) {
this.numberOfOverbooked = numberOfOverbooked;
}
public void setBerth(SequenceOfBerthDetailData berth) {
this.berth = berth;
}
public void setTariff(SequenceOfTariffType tariff) {
this.tariff = tariff;
}
public void setPriceType(PriceTypeType priceType) {
this.priceType = priceType;
}
public void setTypeOfSupplement(Long typeOfSupplement) {
this.typeOfSupplement = typeOfSupplement;
}
public void setNumberOfSupplements(Long numberOfSupplements) {
this.numberOfSupplements = numberOfSupplements;
}
public void setLuggage(LuggageRestrictionType luggage) {
this.luggage = luggage;
}
public void setInfoText(String infoText) {
this.infoText = infoText;
}
public void setExtension(ExtensionData extension) {
this.extension = extension;
}
public Long getPrice() {
return Asn1BigInteger.toLong(price);
}
public void setPrice(Long price) {
this.price = Asn1BigInteger.toAsn1(price);
}
public SequenceOfVatDetail getVatDetails() {
return vatDetails;
}
public void setVatDetails(SequenceOfVatDetail vatDetails) {
this.vatDetails = vatDetails;
}
public void addVatDetail(VatDetailType vatDetail) {
if (this.vatDetails == null) {
this.vatDetails = new SequenceOfVatDetail();
}
this.vatDetails.add(vatDetail);
}
public void setDepartureArrivalDates (Date departure, Date arrival, Date issuingDate){
if (issuingDate == null || departure == null) return;
this.departureDate = DateTimeUtils.getDateDifference(issuingDate,departure);
this.departureTime = DateTimeUtils.getTime(departure);
if (arrival != null){
this.arrivalDate = DateTimeUtils.getDateDifference(departure, arrival);
this.arrivalTime = DateTimeUtils.getTime(arrival);
}
}
public Date getDepartureDate(Date issuingDate){
return DateTimeUtils.getDate(issuingDate, this.departureDate, this.departureTime);
}
public Date getArrivalDate(Date issuingDate){
if (this.departureDate == null) {
this.departureDate = 0L;
}
if (this.arrivalDate == null) {
return null;
}
return DateTimeUtils.getDate(issuingDate, this.departureDate + this.arrivalDate, this.arrivalTime);
}
public Long getDepartureUTCOffset() {
return departureUTCOffset;
}
public void setDepartureUTCOffset(Long departureUTCOffset) {
this.departureUTCOffset = departureUTCOffset;
}
public Long getArrivalUTCOffset() {
return arrivalUTCOffset;
}
public void setArrivalUTCOffset(Long arrivalUTCOffset) {
this.arrivalUTCOffset = arrivalUTCOffset;
}
}