From 425bd35c736b7e1c0dbe5b3f9162e195b3be6018 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Thu, 25 Feb 2021 11:02:26 +0100 Subject: - bug fix on TicketType Enum - duplicate function getDocument removed - issuedOnLine null value allowed - maven install added (required renaming of some packages) --- .../ticket/api/asn/omv2/BerthDetailData.java | 79 + .../barcode/ticket/api/asn/omv2/BerthTypeType.java | 41 + .../api/asn/omv2/CarCarriageReservationData.java | 734 +++++++ .../ticket/api/asn/omv2/CardReferenceType.java | 182 ++ .../barcode/ticket/api/asn/omv2/CodeTableType.java | 40 + .../api/asn/omv2/CompartmentDetailsType.java | 136 ++ .../ticket/api/asn/omv2/CompartmentGenderType.java | 42 + .../api/asn/omv2/CompartmentPositionType.java | 38 + .../ticket/api/asn/omv2/ConfirmationTypeType.java | 42 + .../barcode/ticket/api/asn/omv2/ControlData.java | 200 ++ .../ticket/api/asn/omv2/CountermarkData.java | 577 ++++++ .../ticket/api/asn/omv2/CustomerCardData.java | 296 +++ .../ticket/api/asn/omv2/CustomerStatusType.java | 93 + .../barcode/ticket/api/asn/omv2/DateTimeUtils.java | 198 ++ .../ticket/api/asn/omv2/DelayConfirmation.java | 339 ++++ .../ticket/api/asn/omv2/DeltaCoordinates.java | 58 + .../barcode/ticket/api/asn/omv2/DocumentData.java | 61 + .../barcode/ticket/api/asn/omv2/ExtensionData.java | 64 + .../barcode/ticket/api/asn/omv2/FIPTicketData.java | 331 ++++ .../barcode/ticket/api/asn/omv2/GenderType.java | 42 + .../api/asn/omv2/GeoCoordinateSystemType.java | 38 + .../ticket/api/asn/omv2/GeoCoordinateType.java | 144 ++ .../barcode/ticket/api/asn/omv2/GeoUnitType.java | 40 + .../api/asn/omv2/HemisphereLatitudeType.java | 37 + .../api/asn/omv2/HemisphereLongitudeType.java | 36 + .../api/asn/omv2/IncludedOpenTicketType.java | 448 +++++ .../barcode/ticket/api/asn/omv2/IssuingData.java | 360 ++++ .../uic/barcode/ticket/api/asn/omv2/LineType.java | 185 ++ .../uic/barcode/ticket/api/asn/omv2/LinkMode.java | 39 + .../ticket/api/asn/omv2/LoadingDeckType.java | 38 + .../api/asn/omv2/LuggageRestrictionType.java | 88 + .../ticket/api/asn/omv2/OpenTicketData.java | 674 +++++++ .../ticket/api/asn/omv2/ParkingGroundData.java | 363 ++++ .../uic/barcode/ticket/api/asn/omv2/PassData.java | 590 ++++++ .../barcode/ticket/api/asn/omv2/PassengerType.java | 46 + .../barcode/ticket/api/asn/omv2/PlacesType.java | 131 ++ .../barcode/ticket/api/asn/omv2/PolygoneType.java | 58 + .../barcode/ticket/api/asn/omv2/PriceTypeType.java | 39 + .../ticket/api/asn/omv2/RegionalValidityType.java | 100 + .../ticket/api/asn/omv2/RegisteredLuggageType.java | 80 + .../ticket/api/asn/omv2/ReservationData.java | 710 +++++++ .../api/asn/omv2/ReturnRouteDescriptionType.java | 150 ++ .../barcode/ticket/api/asn/omv2/RoofRackType.java | 46 + .../ticket/api/asn/omv2/RouteSectionType.java | 136 ++ .../api/asn/omv2/SequenceOfActivatedDays.java | 26 + .../api/asn/omv2/SequenceOfBerthDetailData.java | 10 + .../api/asn/omv2/SequenceOfCardReferenceType.java | 10 + .../ticket/api/asn/omv2/SequenceOfCarrierIA5.java | 13 + .../ticket/api/asn/omv2/SequenceOfCarrierNum.java | 28 + .../ticket/api/asn/omv2/SequenceOfCountries.java | 27 + .../api/asn/omv2/SequenceOfCustomerStatusType.java | 11 + .../api/asn/omv2/SequenceOfDeltaCoordinates.java | 10 + .../api/asn/omv2/SequenceOfDocumentData.java | 10 + .../api/asn/omv2/SequenceOfExtensionData.java | 10 + .../asn/omv2/SequenceOfIncludedOpenTicketType.java | 10 + .../ticket/api/asn/omv2/SequenceOfPlaceNum.java | 28 + .../asn/omv2/SequenceOfRegionalValidityType.java | 10 + .../asn/omv2/SequenceOfRegisteredLuggageType.java | 10 + .../api/asn/omv2/SequenceOfServiceBrands.java | 26 + .../ticket/api/asn/omv2/SequenceOfTariffType.java | 10 + .../api/asn/omv2/SequenceOfTicketLinkType.java | 10 + .../api/asn/omv2/SequenceOfTransportTypes.java | 26 + .../ticket/api/asn/omv2/SequenceOfTravelerId.java | 26 + .../api/asn/omv2/SequenceOfTravelerType.java | 10 + .../ticket/api/asn/omv2/SequenceOfVatDetail.java | 10 + .../api/asn/omv2/SequenceOfViaStationType.java | 10 + .../ticket/api/asn/omv2/SeriesDetailType.java | 75 + .../barcode/ticket/api/asn/omv2/ServiceType.java | 38 + .../ticket/api/asn/omv2/StationPassageData.java | 386 ++++ .../barcode/ticket/api/asn/omv2/TariffType.java | 206 ++ .../ticket/api/asn/omv2/TicketDetailData.java | 190 ++ .../ticket/api/asn/omv2/TicketLinkType.java | 156 ++ .../barcode/ticket/api/asn/omv2/TicketType.java | 41 + .../barcode/ticket/api/asn/omv2/TimeRangeType.java | 59 + .../uic/barcode/ticket/api/asn/omv2/TokenType.java | 92 + .../barcode/ticket/api/asn/omv2/TrainLinkType.java | 184 ++ .../ticket/api/asn/omv2/TravelClassType.java | 50 + .../barcode/ticket/api/asn/omv2/TravelerData.java | 82 + .../barcode/ticket/api/asn/omv2/TravelerType.java | 322 +++ .../ticket/api/asn/omv2/UicRailTicketData.java | 115 ++ .../api/asn/omv2/ValidityPeriodDetailType.java | 73 + .../ticket/api/asn/omv2/ValidityPeriodType.java | 164 ++ .../barcode/ticket/api/asn/omv2/VatDetailType.java | 87 + .../ticket/api/asn/omv2/ViaStationType.java | 181 ++ .../barcode/ticket/api/asn/omv2/VoucherData.java | 313 +++ .../uic/barcode/ticket/api/asn/omv2/ZoneType.java | 182 ++ .../ticket/api/asn/omv2/uicBarcodeFCBv2.0.asn | 2040 ++++++++++++++++++++ 87 files changed, 13546 insertions(+) create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/BerthDetailData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/BerthTypeType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/CarCarriageReservationData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/CardReferenceType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/CodeTableType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/CompartmentDetailsType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/CompartmentGenderType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/CompartmentPositionType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/ConfirmationTypeType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/ControlData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/CountermarkData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/CustomerCardData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/CustomerStatusType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/DateTimeUtils.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/DelayConfirmation.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/DeltaCoordinates.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/DocumentData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/ExtensionData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/FIPTicketData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/GenderType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/GeoCoordinateSystemType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/GeoCoordinateType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/GeoUnitType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/HemisphereLatitudeType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/HemisphereLongitudeType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/IncludedOpenTicketType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/IssuingData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/LineType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/LinkMode.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/LoadingDeckType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/LuggageRestrictionType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/OpenTicketData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/ParkingGroundData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/PassData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/PassengerType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/PlacesType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/PolygoneType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/PriceTypeType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/RegionalValidityType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/RegisteredLuggageType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/ReservationData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/ReturnRouteDescriptionType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/RoofRackType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/RouteSectionType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfActivatedDays.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfBerthDetailData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCardReferenceType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCarrierIA5.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCarrierNum.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCountries.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCustomerStatusType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfDeltaCoordinates.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfDocumentData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfExtensionData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfIncludedOpenTicketType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfPlaceNum.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfRegionalValidityType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfRegisteredLuggageType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfServiceBrands.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTariffType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTicketLinkType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTransportTypes.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTravelerId.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTravelerType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfVatDetail.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfViaStationType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/SeriesDetailType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/ServiceType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/StationPassageData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/TariffType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/TicketDetailData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/TicketLinkType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/TicketType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/TimeRangeType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/TokenType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/TrainLinkType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/TravelClassType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/TravelerData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/TravelerType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/UicRailTicketData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/ValidityPeriodDetailType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/ValidityPeriodType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/VatDetailType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/ViaStationType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/VoucherData.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/ZoneType.java create mode 100644 src/org/uic/barcode/ticket/api/asn/omv2/uicBarcodeFCBv2.0.asn (limited to 'src/org/uic/barcode/ticket/api/asn/omv2') diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/BerthDetailData.java b/src/org/uic/barcode/ticket/api/asn/omv2/BerthDetailData.java new file mode 100644 index 0000000..f4d2677 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/BerthDetailData.java @@ -0,0 +1,79 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.Sequence; + + +@Sequence +@HasExtensionMarker +public class BerthDetailData extends Object { + public BerthDetailData() { + } + + @FieldOrder(order = 0) + public BerthTypeType berthType; + + @FieldOrder(order = 1) + @IntRange(minValue=1, maxValue=999) + public Long numberOfBerths; + + @FieldOrder(order = 2) + @Asn1Default(value="family") + @Asn1Optional public CompartmentGenderType gender; + + + public BerthTypeType getBerthType() { + return this.berthType; + } + + public Long getNumberOfBerths() { + return this.numberOfBerths; + } + + public CompartmentGenderType getGender() { + + if (gender == null){ + return CompartmentGenderType.family; + } else { + return this.gender; + } + } + + public void setBerthType(BerthTypeType berthType) { + + this.berthType = berthType; + } + + public void setNumberOfBerths(Long numberOfBerths) { + this.numberOfBerths = numberOfBerths; + } + + public void setGender(CompartmentGenderType gender) { + this.gender = gender; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/BerthTypeType.java b/src/org/uic/barcode/ticket/api/asn/omv2/BerthTypeType.java new file mode 100644 index 0000000..074ca4c --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/BerthTypeType.java @@ -0,0 +1,41 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +public enum BerthTypeType { + single("single"), + special("special"), + double_("double_"), + t2("t2"), + t3("t3"), + t4("t4"); + + + public String text; + + BerthTypeType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/CarCarriageReservationData.java b/src/org/uic/barcode/ticket/api/asn/omv2/CarCarriageReservationData.java new file mode 100644 index 0000000..9bab332 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/CarCarriageReservationData.java @@ -0,0 +1,734 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCarrierNum; + + + +@Sequence +@HasExtensionMarker +public class CarCarriageReservationData extends Object { + public CarCarriageReservationData() { + } + + @FieldOrder(order = 0) + @Asn1Optional public Asn1BigInteger trainNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String trainIA5; + + @FieldOrder(order = 2) + @IntRange(minValue=-1,maxValue=370) + @Asn1Default(value="0") + @Asn1Optional public Long beginLoadingDate; + + @FieldOrder(order = 3) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long beginLoadingTime; + + @FieldOrder(order = 4) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long endLoadingTime; + + @FieldOrder(order = 5) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long loadingUTCOffset; + + @FieldOrder(order = 6) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String referenceIA5; + + @FieldOrder(order = 7) + @Asn1Optional public Asn1BigInteger referenceNum; + + @FieldOrder(order = 8) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long productOwnerNum; + + @FieldOrder(order = 9) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productOwnerIA5; + + @FieldOrder(order = 10) + @IntRange(minValue=0,maxValue=65535) + @Asn1Optional public Long productIdNum; + + @FieldOrder(order = 11) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productIdIA5; + + @FieldOrder(order = 12) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long serviceBrand; + + @FieldOrder(order = 13) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String serviceBrandAbrUTF8; + + @FieldOrder(order = 14) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String serviceBrandNameUTF8; + + @FieldOrder(order = 15) + @Asn1Default("stationUICReservation") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 16) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long fromStationNum; + + @FieldOrder(order = 17) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String fromStationIA5; + + @FieldOrder(order = 18) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long toStationNum; + + @FieldOrder(order = 19) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String toStationIA5; + + @FieldOrder(order = 20) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String fromStationNameUTF8; + + @FieldOrder(order = 21) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String toStationNameUTF8; + + @FieldOrder(order = 22) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String coach; + + @FieldOrder(order = 23) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String place; + + @FieldOrder(order = 24) + @Asn1Optional public CompartmentDetailsType compartmentDetails; + + @FieldOrder(order = 25) + @RestrictedString(CharacterRestriction.IA5String) + public String numberPlate; + + @FieldOrder(order = 26) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String trailerPlate; + + @FieldOrder(order = 27) + @IntRange(minValue=0,maxValue=9) + public Long carCategory; + + @FieldOrder(order = 28) + @IntRange(minValue=0,maxValue=6) + @Asn1Optional public Long boatCategory; + + @FieldOrder(order = 29) + public Boolean textileRoof = false; + + @FieldOrder(order = 30) + @Asn1Default(value ="norack") + @Asn1Optional public RoofRackType roofRackType; + + @FieldOrder(order = 31) + @IntRange(minValue=0,maxValue=99) + @Asn1Optional public Long roofRackHeight; + + @FieldOrder(order = 32) + @IntRange(minValue=0,maxValue=2) + @Asn1Optional public Long attachedBoats; + + @FieldOrder(order = 33) + @IntRange(minValue=0,maxValue=4) + @Asn1Optional public Long attachedBicycles; + + @FieldOrder(order = 34) + @IntRange(minValue=0,maxValue=5) + @Asn1Optional public Long attachedSurfboards; + + @FieldOrder(order = 35) + @IntRange(minValue=0,maxValue=999) + @Asn1Optional public Long loadingListEntry; + + @FieldOrder(order = 36) + @Asn1Default(value="upper") + @Asn1Optional public LoadingDeckType loadingDeck; + + @FieldOrder(order = 37) + @Asn1Optional public SequenceOfCarrierNum carrierNum; + + @FieldOrder(order = 38) + @Asn1Optional public SequenceOfStringIA5 carrierIA5; + + @FieldOrder(order = 39) + public TariffType tariff; + + @FieldOrder(order = 40) + @Asn1Default(value="travelPrice") + @Asn1Optional public PriceTypeType priceType; + + @FieldOrder(order = 41) + @Asn1Optional Asn1BigInteger price; + + @FieldOrder(order = 42) + @Asn1Optional SequenceOfVatDetail vatDetails; + + @FieldOrder(order = 43) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String infoText; + + @FieldOrder(order = 44) + @Asn1Optional public ExtensionData extension; + + public Long getTrainNum() { + if (this.trainNum == null) return null; + return Asn1BigInteger.toLong(this.trainNum); + } + + public String getTrainIA5() { + + return this.trainIA5; + } + + public Long getBeginLoadingDate() { + + return this.beginLoadingDate; + } + + public Long getBeginLoadingTime() { + + if (beginLoadingTime == null) return new Long(0); + return beginLoadingTime; + } + + public Long getEndLoadingTime() { + + return this.endLoadingTime; + } + + 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 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 String getCoach() { + + return this.coach; + } + + public String getPlace() { + + return this.place; + } + + public CompartmentDetailsType getCompartmentDetails() { + + return this.compartmentDetails; + } + + public String getNumberPlate() { + + return this.numberPlate; + } + + public String getTrailerPlate() { + + return this.trailerPlate; + } + + public Long getCarCategory() { + + return this.carCategory; + } + + public Long getBoatCategory() { + + return this.boatCategory; + } + + public Boolean getTextileRoof() { + + return this.textileRoof; + } + + public RoofRackType getRoofRackType() { + + if (this.roofRackType == null) return RoofRackType.norack; + return this.roofRackType; + } + + public Long getRoofRackHeight() { + + return this.roofRackHeight; + } + + public Long getAttachedBoats() { + + return this.attachedBoats; + } + + public Long getAttachedBicycles() { + + return this.attachedBicycles; + } + + public Long getAttachedSurfboards() { + + return this.attachedSurfboards; + } + + public Long getLoadingListEntry() { + + return this.loadingListEntry; + } + + public LoadingDeckType getLoadingDeck() { + + if (this.loadingDeck == null) return LoadingDeckType.upper; + return this.loadingDeck; + } + + public SequenceOfCarrierNum getCarrierNum() { + + return this.carrierNum; + } + + public SequenceOfStringIA5 getCarrierIA5() { + + return this.carrierIA5; + } + + public TariffType getTariff() { + + return this.tariff; + } + + public PriceTypeType getPriceType() { + if (this.priceType == null) return PriceTypeType.travelPrice; + return this.priceType; + } + + public String getInfoText() { + + return this.infoText; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public void setTrainNum(Long trainNum) { + + this.trainNum = new Asn1BigInteger(trainNum); + } + + public void setTrainIA5(String trainIA5) { + + this.trainIA5 = trainIA5; + } + + public void setBeginLoadingDate(Long beginLoadingDate) { + + this.beginLoadingDate = beginLoadingDate; + } + + public void setBeginLoadingTime(Long beginLoadingTime) { + + this.beginLoadingTime = beginLoadingTime; + } + + public void setEndLoadingTime(Long endLoadingTime) { + this.endLoadingTime = endLoadingTime; + } + + 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 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 setCoach(String coach) { + + this.coach = coach; + } + + public void setPlace(String place) { + + this.place = place; + } + + public void setCompartmentDetails(CompartmentDetailsType compartmentDetails) { + + this.compartmentDetails = compartmentDetails; + } + + public void setNumberPlate(String numberPlate) { + + this.numberPlate = numberPlate; + } + + public void setTrailerPlate(String trailerPlate) { + + this.trailerPlate = trailerPlate; + } + + public void setCarCategory(Long carCategory) { + + this.carCategory = carCategory; + } + + public void setBoatCategory(Long boatCategory) { + + this.boatCategory = boatCategory; + } + + public void setTextileRoof(Boolean textileRoof) { + + this.textileRoof = textileRoof; + } + + public void setRoofRackType(RoofRackType roofRackType) { + + this.roofRackType = roofRackType; + } + + public void setRoofRackHeight(Long roofRackHeight) { + + this.roofRackHeight = roofRackHeight; + } + + public void setAttachedBoats(Long attachedBoats) { + + this.attachedBoats = attachedBoats; + } + + public void setAttachedBicycles(Long attachedBicycles) { + + this.attachedBicycles = attachedBicycles; + } + + public void setAttachedSurfboards(Long attachedSurfboards) { + + this.attachedSurfboards = attachedSurfboards; + } + + public void setLoadingListEntry(Long loadingListEntry) { + + this.loadingListEntry = loadingListEntry; + } + + public void setLoadingDeck(LoadingDeckType loadingDeck) { + + this.loadingDeck = loadingDeck; + } + + public void setCarrierNum(SequenceOfCarrierNum carrierNum) { + + this.carrierNum = carrierNum; + } + + public void setCarrierNum(List longs) { + if (longs == null || longs.isEmpty()) return; + this.carrierNum = new SequenceOfCarrierNum(longs); + } + + + public void setCarrierIA5(SequenceOfStringIA5 carrierIA5) { + + this.carrierIA5 = carrierIA5; + } + + public void setTariff(TariffType tariff) { + + this.tariff = tariff; + } + + public void setPriceType(PriceTypeType priceType) { + + this.priceType = priceType; + } + + 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 setLoadingDates (Date beginLoading, Date endLoading, Date issuingDate){ + + if (issuingDate == null || beginLoading == null) return; + + this.beginLoadingDate = DateTimeUtils.getDateDifference(issuingDate,beginLoading); + this.beginLoadingTime = DateTimeUtils.getTime(beginLoading); + + if (endLoading != null) { + this.endLoadingTime = DateTimeUtils.getTime(endLoading); + } + } + + public Date getBeginLoadingDate(Date issuingDate){ + + if (issuingDate == null) return null; + + if (this.beginLoadingDate == null) { + this.beginLoadingDate = 0L; + } + + return DateTimeUtils.getDate(issuingDate, this.beginLoadingDate, this.beginLoadingTime); + + } + + public Date getEndLoadingDate(Date issuingDate){ + + if (issuingDate == null) return null; + + if (this.beginLoadingDate == null) { + this.beginLoadingDate = 0L; + } + + if (this.endLoadingTime == null) { + return null; + } + + Date begin = DateTimeUtils.getDate(issuingDate, this.beginLoadingDate, this.beginLoadingTime); + Date end = DateTimeUtils.getDate(issuingDate, this.beginLoadingDate, this.endLoadingTime); + + //max one day difference assumed + if (end.before(begin)) { + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.setTime(end); + cal.add(Calendar.DAY_OF_YEAR,1); + return cal.getTime(); + } else { + return end; + } + + } + + public Long getLoadingUTCOffset() { + return loadingUTCOffset; + } + + public void setLoadingUTCOffset(Long loadingUTCOffset) { + this.loadingUTCOffset = loadingUTCOffset; + } + + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/CardReferenceType.java b/src/org/uic/barcode/ticket/api/asn/omv2/CardReferenceType.java new file mode 100644 index 0000000..3c7d3e2 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/CardReferenceType.java @@ -0,0 +1,182 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.math.BigInteger; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + + +@Sequence +@HasExtensionMarker +public class CardReferenceType extends Object { + public CardReferenceType() { + } + + @FieldOrder(order = 0) + @Asn1Optional public Asn1BigInteger cardIssuerNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String cardIssuerIA5; + + @FieldOrder(order = 2) + @Asn1Optional public Asn1BigInteger cardIdNum; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String cardIdIA5; + + @FieldOrder(order = 4) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String cardName; + + @FieldOrder(order = 5) + @Asn1Optional public Asn1BigInteger cardType; + + @FieldOrder(order = 6) + @Asn1Optional public Asn1BigInteger leadingCardIdNum; + + @FieldOrder(order = 7) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String leadingCardIdIA5; + + @FieldOrder(order = 8) + @Asn1Optional public Asn1BigInteger trailingCardIdNum; + + @FieldOrder(order = 9) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String trailingCardIdIA5; + + public Asn1BigInteger getCardIssuerNum() { + + return this.cardIssuerNum; + } + + public String getCardIssuerIA5() { + + return this.cardIssuerIA5; + } + + public Asn1BigInteger getCardIdNum() { + + return this.cardIdNum; + } + + public String getCardIdIA5() { + + return this.cardIdIA5; + } + + public String getCardName() { + + return this.cardName; + } + + public Asn1BigInteger getCardType() { + return this.cardType; + } + + public BigInteger getLeadingCardIdNum() { + if (leadingCardIdNum != null) { + return leadingCardIdNum.toBigInteger(); + } + return null; + } + + public String getLeadingCardIdIA5() { + + return this.leadingCardIdIA5; + } + + public Long getTrailingCardIdNum() { + + return Asn1BigInteger.toLong(this.trailingCardIdNum); + } + + public String getTrailingCardIdIA5() { + + return this.trailingCardIdIA5; + } + + public void setCardIssuerNum(Long cardIssuerNum) { + + this.cardIssuerNum = Asn1BigInteger.toAsn1(cardIssuerNum); + } + + public void setCardIssuerIA5(String cardIssuerIA5) { + + this.cardIssuerIA5 = cardIssuerIA5; + } + + public void setCardIdNum(Asn1BigInteger asn1BigInteger) { + + this.cardIdNum = asn1BigInteger; + } + + public void setCardIdNum(Long cardIdNum) { + + this.cardIdNum = new Asn1BigInteger(cardIdNum); + } + + public void setCardIdIA5(String cardIdIA5) { + + this.cardIdIA5 = cardIdIA5; + } + + public void setCardName(String cardName) { + + this.cardName = cardName; + } + + public void setCardType(Long cardType) { + + this.cardType = Asn1BigInteger.toAsn1(cardType); + } + + public void setLeadingCardIdNum(Long leadingCardIdNum) { + + this.leadingCardIdNum = Asn1BigInteger.toAsn1(leadingCardIdNum); + } + + public void setLeadingCardIdIA5(String leadingCardIdIA5) { + + this.leadingCardIdIA5 = leadingCardIdIA5; + } + + public void setTrailingCardIdNum(Long trailingCardIdNum) { + + this.trailingCardIdNum = Asn1BigInteger.toAsn1(trailingCardIdNum); + } + + public void setTrailingCardIdIA5(String trailingCardIdIA5) { + + this.trailingCardIdIA5 = trailingCardIdIA5; + } + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/CodeTableType.java b/src/org/uic/barcode/ticket/api/asn/omv2/CodeTableType.java new file mode 100644 index 0000000..e9c5e01 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/CodeTableType.java @@ -0,0 +1,40 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + + +public enum CodeTableType { + stationUIC("stationUIC"), + stationUICReservation("stationUICReservation"), + stationERA("stationERA"), + localCarrierStationCodeTable("localCarrierStationCodeTable"), + proprietaryIssuerStationCodeTable("proprietaryIssuerStationCodeTable"); + + public String text; + + CodeTableType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/CompartmentDetailsType.java b/src/org/uic/barcode/ticket/api/asn/omv2/CompartmentDetailsType.java new file mode 100644 index 0000000..ce1832e --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/CompartmentDetailsType.java @@ -0,0 +1,136 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + + +@Sequence +@HasExtensionMarker +public class CompartmentDetailsType extends Object { + public CompartmentDetailsType() { + } + + @FieldOrder(order = 0) + @IntRange(minValue=1,maxValue=99) + @Asn1Optional public Long coachType; + + @FieldOrder(order = 1) + @IntRange(minValue=1,maxValue=99) + @Asn1Optional public Long compartmentType; + + @FieldOrder(order = 2) + @IntRange(minValue=1,maxValue=99) + @Asn1Optional public Long specialAllocation; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String coachTypeDescr; + + @FieldOrder(order = 4) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String compartmentTypeDescr; + + @FieldOrder(order = 5) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String specialAllocationDescr; + + @FieldOrder(order = 6) + @Asn1Default(value="unspecified") + public CompartmentPositionType position; + + public Long getCoachType() { + + return this.coachType; + } + + public Long getCompartmentType() { + + return this.compartmentType; + } + + public Long getSpecialAllocation() { + + return this.specialAllocation; + } + + public String getCoachTypeDescr() { + + return this.coachTypeDescr; + } + + public String getCompartmentTypeDescr() { + + return this.compartmentTypeDescr; + } + + public String getSpecialAllocationDescr() { + + return this.specialAllocationDescr; + } + + public CompartmentPositionType getPosition() { + if (position == null) return CompartmentPositionType.unspecified; + return this.position; + } + + public void setCoachType(Long coachType) { + this.coachType = coachType; + } + + public void setCompartmentType(Long compartmentType) { + + this.compartmentType = compartmentType; + } + + public void setSpecialAllocation(Long specialAllocation) { + + this.specialAllocation = specialAllocation; + } + + public void setCoachTypeDescr(String coachTypeDescr) { + + this.coachTypeDescr = coachTypeDescr; + } + + public void setCompartmentTypeDescr(String compartmentTypeDescr) { + + this.compartmentTypeDescr = compartmentTypeDescr; + } + + public void setSpecialAllocationDescr(String specialAllocationDescr) { + + this.specialAllocationDescr = specialAllocationDescr; + } + + public void setPosition(CompartmentPositionType position) { + + this.position = position; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/CompartmentGenderType.java b/src/org/uic/barcode/ticket/api/asn/omv2/CompartmentGenderType.java new file mode 100644 index 0000000..f960234 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/CompartmentGenderType.java @@ -0,0 +1,42 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; + +@HasExtensionMarker +public enum CompartmentGenderType { + unspecified("unspecified"), + family("family"), + female("female"), + male("male"), + mixed("mixed"); + + public String text; + + CompartmentGenderType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } + +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/CompartmentPositionType.java b/src/org/uic/barcode/ticket/api/asn/omv2/CompartmentPositionType.java new file mode 100644 index 0000000..cb43f24 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/CompartmentPositionType.java @@ -0,0 +1,38 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + + +public enum CompartmentPositionType { + unspecified("unspecified"), + upperLevel("upperLevel"), + lowerLevel("lowerLevel"); + + public String text; + + CompartmentPositionType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/ConfirmationTypeType.java b/src/org/uic/barcode/ticket/api/asn/omv2/ConfirmationTypeType.java new file mode 100644 index 0000000..bf84f91 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/ConfirmationTypeType.java @@ -0,0 +1,42 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; + +@HasExtensionMarker +public enum ConfirmationTypeType { + trainDelayConfirmation ("trainDelayConfirmation"), + travelerDelayConfirmation ("travelerDelayConfirmation"), + trainLinkedTicketDelay ("trainLinkedTicketDelay"); + + + + public String text; + + ConfirmationTypeType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/ControlData.java b/src/org/uic/barcode/ticket/api/asn/omv2/ControlData.java new file mode 100644 index 0000000..fb73e24 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/ControlData.java @@ -0,0 +1,200 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + + + +@Sequence +@HasExtensionMarker +public class ControlData extends Object { + public ControlData() { + } + + @FieldOrder(order = 0) + @Asn1Optional public SequenceOfCardReferenceType identificationByCardReference; + + @FieldOrder(order = 1) + public Boolean identificationByIdCard = false; + + @FieldOrder(order = 2) + public Boolean identificationByPassportId = false; + + @FieldOrder(order = 3) + @Asn1Optional public Asn1BigInteger identificationItem; + + @FieldOrder(order = 4) + public Boolean passportValidationRequired = false; + + @FieldOrder(order = 5) + public Boolean onlineValidationRequired = false; + + @FieldOrder(order = 6) + @IntRange(minValue=0,maxValue=99) + @Asn1Optional public Long randomDetailedValidationRequired; + + @FieldOrder(order = 7) + public Boolean ageCheckRequired = false; + + @FieldOrder(order = 8) + public Boolean reductionCardCheckRequired = false; + + @FieldOrder(order = 9) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String infoText; + + @FieldOrder(order = 10) + @Asn1Optional public SequenceOfTicketLinkType includedTickets; + + @FieldOrder(order = 11) + @Asn1Optional public ExtensionData extension; + + + + + public SequenceOfCardReferenceType getIdentificationByCardReference() { + + return this.identificationByCardReference; + } + + public Boolean getIdentificationByIdCard() { + + return this.identificationByIdCard; + } + + public Boolean getIdentificationByPassportId() { + + return this.identificationByPassportId; + } + + public Long getIdentificationItem() { + + return Asn1BigInteger.toLong(this.identificationItem); + } + + public Boolean getPassportValidationRequired() { + + return this.passportValidationRequired; + } + + public Boolean getOnlineValidationRequired() { + + return this.onlineValidationRequired; + } + + public Long getRandomDetailedValidationRequired() { + + return this.randomDetailedValidationRequired; + } + + public Boolean getAgeCheckRequired() { + + return this.ageCheckRequired; + } + + public Boolean getReductionCardCheckRequired() { + + return this.reductionCardCheckRequired; + } + + public String getInfoText() { + + return this.infoText; + } + + public SequenceOfTicketLinkType getIncludedTickets() { + + return this.includedTickets; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public void setIdentificationByCardReference(SequenceOfCardReferenceType identificationByCardReference) { + + this.identificationByCardReference = identificationByCardReference; + } + + public void setIdentificationByIdCard(Boolean identificationByIdCard) { + + this.identificationByIdCard = identificationByIdCard; + } + + public void setIdentificationByPassportId(Boolean identificationByPassportId) { + + this.identificationByPassportId = identificationByPassportId; + } + + public void setIdentificationItem(Long identificationItem) { + + this.identificationItem = Asn1BigInteger.toAsn1(identificationItem); + } + + public void setPassportValidationRequired(Boolean passportValidationRequired) { + + this.passportValidationRequired = passportValidationRequired; + } + + public void setOnlineValidationRequired(Boolean onlineValidationRequired) { + + this.onlineValidationRequired = onlineValidationRequired; + } + + public void setRandomDetailedValidationRequired(Long randomDetailedValidationRequired) { + this.randomDetailedValidationRequired = randomDetailedValidationRequired; + } + + public void setAgeCheckRequired(Boolean ageCheckRequired) { + this.ageCheckRequired = ageCheckRequired; + } + + public void setReductionCardCheckRequired(Boolean reductionCardCheckRequired) { + + this.reductionCardCheckRequired = reductionCardCheckRequired; + } + + public void setInfoText(String infoText) { + + this.infoText = infoText; + } + + public void setIncludedTickets(SequenceOfTicketLinkType includedTickets) { + + this.includedTickets = includedTickets; + } + + public void setExtension(ExtensionData extension) { + + this.extension = extension; + } + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/CountermarkData.java b/src/org/uic/barcode/ticket/api/asn/omv2/CountermarkData.java new file mode 100644 index 0000000..41c73b5 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/CountermarkData.java @@ -0,0 +1,577 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Date; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; + +@Sequence +@HasExtensionMarker +public class CountermarkData extends Object { + public CountermarkData() { + } + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String referenceIA5; + + @FieldOrder(order = 1) + @Asn1Optional public Asn1BigInteger referenceNum; + + @FieldOrder(order = 2) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long productOwnerNum; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productOwnerIA5; + + @FieldOrder(order = 4) + @IntRange(minValue=0,maxValue=65535) + @Asn1Optional public Long productIdNum; + + @FieldOrder(order = 5) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productIdIA5; + + @FieldOrder(order = 6) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String ticketReferenceIA5; + + @FieldOrder(order = 7) + @Asn1Optional public Asn1BigInteger ticketReferenceNum; + + @FieldOrder(order = 8) + @IntRange(minValue=1,maxValue=200) + @Asn1Optional public Long numberOfCountermark; + + @FieldOrder(order = 9) + @IntRange(minValue=1,maxValue=200) + @Asn1Optional public Long totalOfCountermarks; + + @FieldOrder(order = 10) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String groupName; + + @FieldOrder(order = 11) + @Asn1Default("stationUIC") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 12) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long fromStationNum; + + @FieldOrder(order = 13) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String fromStationIA5; + + @FieldOrder(order = 14) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long toStationNum; + + @FieldOrder(order = 15) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String toStationIA5; + + @FieldOrder(order = 16) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String fromStationNameUTF8; + + @FieldOrder(order = 17) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String toStationNameUTF8; + + @FieldOrder(order = 18) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String validRegionDesc; + + @FieldOrder(order = 19) + @Asn1Optional public SequenceOfRegionalValidityType validRegion; + + @FieldOrder(order = 20) + public Boolean returnIncluded = false; + + @FieldOrder(order = 21) + @Asn1Optional public ReturnRouteDescriptionType returnDescription; + + @FieldOrder(order = 22) + @IntRange(minValue=-1,maxValue=700) + @Asn1Optional public Long validFromDay; + + @FieldOrder(order = 23) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long validFromTime; + + @FieldOrder(order = 24) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validFromUTCOffset; + + @FieldOrder(order = 25) + @IntRange(minValue=0,maxValue=370) + @Asn1Optional public Long validUntilDay; + + @FieldOrder(order = 26) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long validUntilTime; + + @FieldOrder(order = 27) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validUntilUTCOffset; + + @FieldOrder(order = 28) + @Asn1Default(value="second") + @Asn1Optional public TravelClassType classCode; + + @FieldOrder(order = 29) + @Asn1Optional public SequenceOfCarrierNum carrierNum; + + @FieldOrder(order = 30) + @Asn1Optional public SequenceOfStringIA5 carrierIA5; + + @FieldOrder(order = 31) + @Asn1Optional public SequenceOfServiceBrands includedServiceBrands; + + @FieldOrder(order = 32) + @Asn1Optional public SequenceOfServiceBrands excludedServiceBrands; + + @FieldOrder(order = 33) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String infoText; + + @FieldOrder(order = 34) + @Asn1Optional public ExtensionData extension; + + + + + + 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 String getTicketReferenceIA5() { + + return this.ticketReferenceIA5; + } + + public Long getTicketReferenceNum() { + + return Asn1BigInteger.toLong(this.ticketReferenceNum); + } + + public Long getNumberOfCountermark() { + + return this.numberOfCountermark; + } + + public Long getTotalOfCountermarks() { + + return this.totalOfCountermarks; + } + + public String getGroupName() { + + return this.groupName; + } + + public CodeTableType getStationCodeTable() { + + if (stationCodeTable == null) { + return CodeTableType.stationUIC; + } + + 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 String getValidRegionDesc() { + + return this.validRegionDesc; + } + + public SequenceOfRegionalValidityType getValidRegion() { + + return this.validRegion; + } + + public Boolean getReturnIncluded() { + + return this.returnIncluded; + } + + public ReturnRouteDescriptionType getReturnDescription() { + + return this.returnDescription; + } + + public Long getValidFromDay() { + + return this.validFromDay; + } + + public Long getValidFromTime() { + + return this.validFromTime; + } + + public Long getValidUntilDay() { + + return this.validUntilDay; + } + + public Long getValidUntilTime() { + + return this.validUntilTime; + } + + public TravelClassType getClassCode() { + + if (classCode == null){ + return TravelClassType.second; + } + + return this.classCode; + } + + public SequenceOfCarrierNum getCarriersNum() { + + return this.carrierNum; + } + + public SequenceOfStringIA5 getCarriersIA5() { + + return this.carrierIA5; + } + + public SequenceOfServiceBrands getIncludedServiceBrands() { + + return this.includedServiceBrands; + } + + public SequenceOfServiceBrands getExcludedServiceBrands() { + + return this.excludedServiceBrands; + } + + public String getInfoText() { + + return this.infoText; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + 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 setTicketReferenceIA5(String ticketReferenceIA5) { + + this.ticketReferenceIA5 = ticketReferenceIA5; + } + + public void setTicketReferenceNum(Long ticketReferenceNum) { + + this.ticketReferenceNum = Asn1BigInteger.toAsn1(ticketReferenceNum); + } + + public void setNumberOfCountermark(Long numberOfCountermark) { + + this.numberOfCountermark = numberOfCountermark; + } + + public void setTotalOfCountermarks(Long totalOfCountermarks) { + + this.totalOfCountermarks = totalOfCountermarks; + } + + public void setGroupName(String groupName) { + + this.groupName = groupName; + } + + 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 setValidRegionDesc(String validRegionDesc) { + + this.validRegionDesc = validRegionDesc; + } + + public void setValidRegion(SequenceOfRegionalValidityType validRegion) { + + this.validRegion = validRegion; + } + + public void setReturnIncluded(Boolean returnIncluded) { + + this.returnIncluded = returnIncluded; + } + + public void setReturnDescription(ReturnRouteDescriptionType returnDescription) { + + this.returnDescription = returnDescription; + } + + public void setValidFromDay(Long validFromDay) { + + this.validFromDay = validFromDay; + } + + public void setValidFromTime(Long validFromTime) { + + this.validFromTime = validFromTime; + } + + public void setValidUntilDay(Long validUntilDay) { + + this.validUntilDay = validUntilDay; + } + + public void setValidUntilTime(Long validUntilTime) { + + this.validUntilTime = validUntilTime; + } + + public void setClassCode(TravelClassType classCode) { + + this.classCode = classCode; + } + + public void setCarriersNum(SequenceOfCarrierNum carrierNum) { + + this.carrierNum = carrierNum; + } + + public void setCarriersNum(List longs) { + if (longs == null) return; + + this.carrierNum = new SequenceOfCarrierNum(); + this.carrierNum.addAll(longs); + } + + public void setCarriersIA5(SequenceOfStringIA5 carrierIA5) { + + this.carrierIA5 = carrierIA5; + } + + public void setIncludedServiceBrands(SequenceOfServiceBrands includedServiceBrands) { + + this.includedServiceBrands = includedServiceBrands; + } + + public void setExcludedServiceBrands(SequenceOfServiceBrands excludedServiceBrands) { + + this.excludedServiceBrands = excludedServiceBrands; + } + + public void setInfoText(String infoText) { + + this.infoText = infoText; + } + + public void setExtension(ExtensionData extension) { + + this.extension = extension; + } + + + public void setValidityDates (Date fromDate, Date untilDate, Date issuingDate){ + + if (issuingDate == null || fromDate == null) return; + + this.validFromDay = DateTimeUtils.getDateDifference(issuingDate,fromDate); + this.validFromTime = DateTimeUtils.getTime(fromDate); + + if (untilDate != null){ + this.validUntilDay = DateTimeUtils.getDateDifference(fromDate, untilDate); + this.validUntilTime = DateTimeUtils.getTime(untilDate); + } + + } + + public Date getValidFromDate(Date issuingDate){ + + return DateTimeUtils.getDate(issuingDate, this.validFromDay, this.validFromTime); + + } + + public Date getValidUntilDate(Date issuingDate){ + + if (issuingDate == null) return null; + + if (this.validFromDay == null) { + this.validFromDay = 0L; + } + + if (this.validUntilDay == null) { + return null; + } + + + return DateTimeUtils.getDate(issuingDate, this.validFromDay + this.validUntilDay, this.validUntilTime); + + } + + public Long getValidFromUTCOffset() { + return validFromUTCOffset; + } + + public void setValidFromUTCOffset(Long validFromUTCOffset) { + this.validFromUTCOffset = validFromUTCOffset; + } + + public Long getValidUntilUTCOffset() { + return validUntilUTCOffset; + } + + public void setValidUntilUTCOffset(Long validUntilUTCOffset) { + this.validUntilUTCOffset = validUntilUTCOffset; + } + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/CustomerCardData.java b/src/org/uic/barcode/ticket/api/asn/omv2/CustomerCardData.java new file mode 100644 index 0000000..4302f44 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/CustomerCardData.java @@ -0,0 +1,296 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfUnrestrictedLong; + +@Sequence +@HasExtensionMarker +public class CustomerCardData extends Object { + public CustomerCardData() { + } + + @FieldOrder(order = 0) + @Asn1Optional public TravelerType customer; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String cardIdIA5; + + @FieldOrder(order = 2) + @Asn1Optional public Asn1BigInteger cardIdNum; + + @FieldOrder(order = 3) + @IntRange(minValue=2016,maxValue=2269) + @Asn1Optional public Long validFromYear; + + @FieldOrder(order = 4) + @IntRange(minValue=0,maxValue=700) + @Asn1Optional public Long validFromDay; + + @FieldOrder(order = 5) + @IntRange(minValue=0,maxValue=250) + @Asn1Optional public Long validUntilYear; + + @FieldOrder(order = 6) + @IntRange(minValue=0,maxValue=370) + @Asn1Optional public Long validUntilDay; + + @FieldOrder(order = 7) + @Asn1Optional public TravelClassType classCode; + + @FieldOrder(order = 8) + @IntRange(minValue=0,maxValue=1000) + @Asn1Optional public Long cardType; + + @FieldOrder(order = 9) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String cardTypeDescr; + + @FieldOrder(order = 10) + @Asn1Optional public Asn1BigInteger customerStatus; + + @FieldOrder(order = 11) + @Asn1Optional public String customerStatusDescr; + + @FieldOrder(order = 12) + @Asn1Optional public SequenceOfUnrestrictedLong includedServices; + + @FieldOrder(order = 13) + @Asn1Optional public ExtensionData extension; + + + + + public TravelerType getCustomer() { + + return this.customer; + } + + public String getCardIdIA5() { + + return this.cardIdIA5; + } + + public Asn1BigInteger getCardIdNum() { + + return this.cardIdNum; + } + + public Long getValidFromYear() { + + return this.validFromYear; + } + + public Long getValidFromDay() { + + return this.validFromDay; + } + + public Long getValidUntilYear() { + + return this.validUntilYear; + } + + public Long getValidUntilDay() { + + return this.validUntilDay; + } + + public TravelClassType getClassCode() { + + return this.classCode; + } + + public Long getCardType() { + + return this.cardType; + } + + public String getCardTypeDescr() { + + return this.cardTypeDescr; + } + + public Long getCustomerStatus() { + + return Asn1BigInteger.toLong(this.customerStatus); + } + + public String getCustomerStatusDescr() { + + return this.customerStatusDescr; + } + + public SequenceOfUnrestrictedLong getIncludedServices() { + + return this.includedServices; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public void setCustomer(TravelerType customer) { + + this.customer = customer; + } + + public void setCardIdIA5(String cardIdIA5) { + + this.cardIdIA5 = cardIdIA5; + } + + public void setCardIdNum(Asn1BigInteger cardIdNum) { + + this.cardIdNum = cardIdNum; + } + + public void setCardIdNum(Long cardIdNum) { + + this.cardIdNum = new Asn1BigInteger(cardIdNum); + } + + public void setValidFromYear(Long validFromYear) { + + this.validFromYear = validFromYear; + } + + public void setValidFromDay(Long validFromDay) { + + this.validFromDay = validFromDay; + } + + public void setValidUntilYear(Long validUntilYear) { + + this.validUntilYear = validUntilYear; + } + + public void setValidUntilDay(Long validUntilDay) { + + this.validUntilDay = validUntilDay; + } + + public void setClassCode(TravelClassType classCode) { + + this.classCode = classCode; + } + + public void setCardType(Long cardType) { + + this.cardType = cardType; + } + + public void setCardTypeDescr(String cardTypeDescr) { + + this.cardTypeDescr = cardTypeDescr; + } + + public void setCustomerStatus(Long customerStatus) { + + this.customerStatus = Asn1BigInteger.toAsn1(customerStatus); + } + + public void setCustomerStatusDescr(String customerStatusDescr) { + + this.customerStatusDescr = customerStatusDescr; + } + + public void setIncludedServices(SequenceOfUnrestrictedLong includedServices) { + + this.includedServices = includedServices; + } + + public void setExtension(ExtensionData extension) { + + this.extension = extension; + } + + public void setValidity (Date fromDate , Date untilDate){ + + Calendar fromCal = Calendar.getInstance(); + fromCal.clear(); + fromCal.setTime(fromDate); + + this.validFromYear = new Long( fromCal.get(Calendar.YEAR)); + this.validFromDay = new Long (fromCal.get(Calendar.DAY_OF_YEAR)); + + if (untilDate == null) return; + + Calendar untilCal = Calendar.getInstance(); + untilCal.clear(); + untilCal.setTime(untilDate); + + int untildays = untilCal.get(Calendar.DAY_OF_YEAR); + + int yearDiff = untilCal.get(Calendar.YEAR) - fromCal.get(Calendar.YEAR); + + this.validUntilYear = new Long( yearDiff); + this.validUntilDay = new Long (untildays); + + } + + public Date getValidFromDate (){ + + if (this.validFromYear == null || this.validFromYear == 0) return null; + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.setTimeZone(TimeZone.getTimeZone("UTC")); + cal.set(Calendar.YEAR, this.validFromYear.intValue()); + cal.set(Calendar.DAY_OF_YEAR, this.validFromDay.intValue()); + + return cal.getTime(); + + } + + + public Date getValidUntilDate (){ + + if (this.validUntilYear == null || this.validUntilYear == 0) return null; + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.setTimeZone(TimeZone.getTimeZone("UTC")); + cal.set(Calendar.YEAR, this.validFromYear.intValue()); + if (this.validUntilYear != null) { + cal.add(Calendar.YEAR, this.validUntilYear.intValue()); + } + cal.set(Calendar.DAY_OF_YEAR, this.validUntilDay.intValue()); + + return cal.getTime(); + + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/CustomerStatusType.java b/src/org/uic/barcode/ticket/api/asn/omv2/CustomerStatusType.java new file mode 100644 index 0000000..cb10dc9 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/CustomerStatusType.java @@ -0,0 +1,93 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + + + +@Sequence +public class CustomerStatusType extends Object { + public CustomerStatusType() { + } + + @FieldOrder(order = 0) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long statusProviderNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String statusProviderIA5; + + @FieldOrder(order = 2) + @Asn1Optional public Asn1BigInteger customerStatus; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String customerStatusDescr; + + public Long getStatusProviderNum() { + + return this.statusProviderNum; + } + + public String getStatusProviderIA5() { + + return this.statusProviderIA5; + } + + public Long getCustomerStatus() { + + return Asn1BigInteger.toLong(this.customerStatus); + } + + public String getCustomerStatusDescr() { + + return this.customerStatusDescr; + } + + public void setStatusProviderNum(Long statusProviderNum) { + + this.statusProviderNum = statusProviderNum; + } + + public void setStatusProviderIA5(String statusProviderIA5) { + + this.statusProviderIA5 = statusProviderIA5; + } + + public void setCustomerStatus(Long customerStatus) { + + this.customerStatus = Asn1BigInteger.toAsn1(customerStatus); + } + + public void setCustomerStatusDescr(String customerStatusDescr) { + + this.customerStatusDescr = customerStatusDescr; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/DateTimeUtils.java b/src/org/uic/barcode/ticket/api/asn/omv2/DateTimeUtils.java new file mode 100644 index 0000000..04b1c2e --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/DateTimeUtils.java @@ -0,0 +1,198 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; +import java.util.concurrent.TimeUnit; + +public class DateTimeUtils { + + public static Long getDateDifference(Date issuingDate, Date localDate) { + + if (issuingDate == null || localDate == null) return null; + + Calendar issuingCal = Calendar.getInstance(); + issuingCal.clear(); + issuingCal.setTime(issuingDate); + issuingCal.setTimeZone(TimeZone.getTimeZone("UTC")); + issuingCal.set(Calendar.HOUR_OF_DAY, 0); + issuingCal.set(Calendar.MINUTE, 0); + issuingCal.set(Calendar.SECOND, 0); + issuingCal.set(Calendar.MILLISECOND, 0); + + Calendar fromCal = Calendar.getInstance(); + fromCal.clear(); + fromCal.setTime(localDate); + fromCal.setTimeZone(TimeZone.getTimeZone("UTC")); + fromCal.set(Calendar.HOUR_OF_DAY, 0); + fromCal.set(Calendar.MINUTE, 0); + fromCal.set(Calendar.SECOND, 0); + fromCal.set(Calendar.MILLISECOND, 0); + + long diff = localDate.getTime() - issuingDate.getTime(); + long dayDiff = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS); + + return new Long(dayDiff); + + } + + public static Date getLocalDateFromDifference(Date issuingDate, int diff , Long time ) { + + if (issuingDate == null) return null; + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.setTime(issuingDate); + cal.add(Calendar.DAY_OF_YEAR, diff); + + if (time != null) { + int hours = time.intValue() / 60; + int minutes = time.intValue() - hours * 60; + cal.set(Calendar.HOUR_OF_DAY, hours); + cal.set(Calendar.MINUTE,minutes); + } + + return cal.getTime(); + + } + + + public static void setTime(Calendar cal, Long time){ + + if (time != null) { + int hours = time.intValue() / 60; + int minutes = time.intValue() - hours * 60; + cal.set(Calendar.HOUR_OF_DAY, hours); + cal.set(Calendar.MINUTE,minutes); + } + + + } + + public static Long getTime (Calendar cal) { + + if (cal == null || + !cal.isSet(Calendar.HOUR_OF_DAY) || + !cal.isSet(Calendar.MINUTE) ) { + return null; + } + + int time = cal.get(Calendar.HOUR_OF_DAY) * 60 + cal.get(Calendar.MINUTE); + if (time > 0) { + return new Long (time ); + } + return null; + } + + public static Long getTime (Date date) { + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.setTime(date); + + if (cal == null || + !cal.isSet(Calendar.HOUR_OF_DAY) || + !cal.isSet(Calendar.MINUTE) ) { + return null; + } + + int time = cal.get(Calendar.HOUR_OF_DAY) * 60 + cal.get(Calendar.MINUTE); + if (time > 0) { + return new Long (time ); + } + return null; + } + + public static Date getDate(Date issuingDate, Long date, Long time){ + + if (issuingDate == null) return null; + + if (date == null) { + date = 0L; + } + + Calendar issuingCal = Calendar.getInstance(); + issuingCal.clear(); + issuingCal.setTime(issuingDate); + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.set(Calendar.YEAR,issuingCal.get(Calendar.YEAR) ); + cal.set(Calendar.DAY_OF_YEAR,issuingCal.get(Calendar.DAY_OF_YEAR) ); + + cal.add(Calendar.DAY_OF_YEAR, date.intValue()); + + DateTimeUtils.setTime(cal,time); + + return cal.getTime(); + + } + + + + /** + * Gets the UTC offset. + * + * @param date and time of the issuing date + * @param date and time of the departure + * @return the UTC offset in multiples of 15 minutes + * the offset needs to be added to local time to get the UTC time (UTC = local + offset) + */ + public static Long getUTCoffset(Date local) { + + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.setTime(local); + + /* + * Returns the amount of time in milliseconds to add to UTC to get standard time in this + * time zone. Because this value is not affected by daylight saving time, it is called raw offset. + * If an underlying TimeZone implementation subclass supports historical GMT offset changes, the method + * returns the raw offset value of the current date. In Honolulu, for example, its raw offset + * changed from GMT-10:30 to GMT-10:00 in 1947, and this method + * always returns -36000000 milliseconds (i.e., -10 hours). + */ + int minuteOffset = - cal.getTimeZone().getRawOffset()/ ( 1000 * 60 * 15 ); + + return new Long (minuteOffset); + + } + + public static Date getUTCDate(Date issuingDate, Long date, Long time, Long UTCOffset) { + + if (issuingDate == null) return null; + + if (UTCOffset == null) return null; + + if (time == null) return null; + + if (date == null) { + date = 0L; + } + + Calendar issuingCal = Calendar.getInstance(); + issuingCal.clear(); + issuingCal.setTime(issuingDate); + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.set(Calendar.YEAR,issuingCal.get(Calendar.YEAR) ); + cal.set(Calendar.DAY_OF_YEAR,issuingCal.get(Calendar.DAY_OF_YEAR) ); + cal.add(Calendar.DAY_OF_YEAR, date.intValue()); + + int hours = time.intValue() / 60; + int minutes = time.intValue() - hours * 60; + cal.set(Calendar.HOUR_OF_DAY, hours); + cal.set(Calendar.MINUTE,minutes); + + cal.add(Calendar.MINUTE, (int) (UTCOffset * 15) ); + + cal.setTimeZone(TimeZone.getTimeZone("UTC")); + + return cal.getTime(); + + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/DelayConfirmation.java b/src/org/uic/barcode/ticket/api/asn/omv2/DelayConfirmation.java new file mode 100644 index 0000000..72abeb0 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/DelayConfirmation.java @@ -0,0 +1,339 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.TimeZone; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + + +@Sequence +@HasExtensionMarker +public class DelayConfirmation extends Object { + public DelayConfirmation() { + } + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String referenceIA5; + + @FieldOrder(order = 1) + @Asn1Optional public Asn1BigInteger referenceNum; + + @FieldOrder(order = 2) + @Asn1Optional public Asn1BigInteger trainNum; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String trainIA5; + + @FieldOrder(order = 4) + @IntRange(minValue=2016, maxValue=2269) + @Asn1Optional public Long plannedArrivalYear; + + @FieldOrder(order = 5) + @IntRange(minValue=1, maxValue=366) + @Asn1Optional public Long plannedArrivalDay; + + @FieldOrder(order = 6) + @IntRange(minValue=0, maxValue=1439) + @Asn1Optional public Long plannedArrivalTime; + + @FieldOrder(order = 7) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long departureUTCOffset; + + @FieldOrder(order = 8) + @Asn1Default(value="stationUIC") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 9) + @IntRange(minValue=1, maxValue=9999999) + @Asn1Optional public Long stationNum; + + @FieldOrder(order = 10) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String stationIA5; + + @FieldOrder(order = 11) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String stationNameUTF8; + + @FieldOrder(order = 12) + @IntRange(minValue=0, maxValue=999, hasExtensionMarker=false) + @Asn1Optional public Long delay; + + @FieldOrder(order = 13) + @Asn1Optional public Boolean trainCancelled = false; + + @FieldOrder(order = 14) + @Asn1Default(value="travelerDelayConfirmation") + @Asn1Optional public ConfirmationTypeType confirmationType; + + @FieldOrder(order = 15) + @Asn1Optional public SequenceOfTicketLinkType affectedTickets; + + @FieldOrder(order = 16) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String infoText; + + @FieldOrder(order = 17) + @Asn1Optional public ExtensionData extension; + + + + public String getReferenceIA5() { + + return this.referenceIA5; + } + + public Asn1BigInteger getReferenceNum() { + + return this.referenceNum; + } + + public Long getTrainNum() { + + return Asn1BigInteger.toLong(this.trainNum); + } + + public String getTrainIA5() { + + return this.trainIA5; + } + + public Long getPlannedArrivalYear() { + + return this.plannedArrivalYear; + } + + public Long getPlannedArrivalDay() { + + return this.plannedArrivalDay; + } + + public Long getPlannedArrivalTime() { + + return this.plannedArrivalTime; + } + + public CodeTableType getStationCodeTable() { + + if (stationCodeTable == null){ + return CodeTableType.stationUIC; + } + return this.stationCodeTable; + } + + public Long getStationNum() { + + return this.stationNum; + } + + public String getStationIA5() { + + return this.stationIA5; + } + + public String getStationNameUTF8() { + + return this.stationNameUTF8; + } + + public Long getDelay() { + + return this.delay; + } + + public Boolean getTrainCancelled() { + + return this.trainCancelled; + } + + public ConfirmationTypeType getConfirmationType() { + + if (confirmationType == null){ + return ConfirmationTypeType.trainDelayConfirmation; + } + + return this.confirmationType; + } + + public List getAffectedTickets() { + + return this.affectedTickets; + } + + public String getInfoText() { + + return this.infoText; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public void setReferenceIA5(String referenceIA5) { + + this.referenceIA5 = referenceIA5; + } + + public void setReferenceNum(Asn1BigInteger referenceNum) { + this.referenceNum = referenceNum; + } + + public void setReferenceNum(Long referenceNum) { + this.referenceNum = Asn1BigInteger.toAsn1(referenceNum); + } + + public void setTrainNum(Asn1BigInteger trainNum) { + + this.trainNum = trainNum; + } + + public void setTrainIA5(String trainIA5) { + + this.trainIA5 = trainIA5; + } + + public void setPlannedArrivalYear(Long plannedArrivalYear) { + + this.plannedArrivalYear = plannedArrivalYear; + } + + public void setPlannedArrivalDay(Long plannedArrivalDay) { + + this.plannedArrivalDay = plannedArrivalDay; + } + + public void setPlannedArrivalTime(Long plannedArrivalTime) { + + this.plannedArrivalTime = plannedArrivalTime; + } + + public void setStationCodeTable(CodeTableType stationCodeTable) { + + this.stationCodeTable = stationCodeTable; + } + + public void setStationNum(Long stationNum) { + + this.stationNum = stationNum; + } + + public void setStationIA5(String stationIA5) { + + this.stationIA5 = stationIA5; + } + + public void setStationNameUTF8(String stationNameUTF8) { + + this.stationNameUTF8 = stationNameUTF8; + } + + public void setDelay(Long delay) { + + this.delay = delay; + } + + public void setTrainCancelled(Boolean trainCancelled) { + + this.trainCancelled = trainCancelled; + } + + public void setConfirmationType(ConfirmationTypeType confirmationType) { + + this.confirmationType = confirmationType; + } + + public void setAffectedTickets(SequenceOfTicketLinkType affectedTickets) { + + this.affectedTickets = affectedTickets; + } + + public void setInfoText(String infoText) { + + this.infoText = infoText; + } + + public void setExtension(ExtensionData extension) { + + this.extension = extension; + } + + public void setPlannedArrivalDate(Date date){ + + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + + this.plannedArrivalYear = new Long( cal.get(Calendar.YEAR)); + this.plannedArrivalDay = new Long (cal.get(Calendar.DAY_OF_YEAR)); + int time = cal.get(Calendar.HOUR_OF_DAY) * 60 + cal.get(Calendar.MINUTE); + if (time > 0) { + this.plannedArrivalTime = new Long (time ); + } + + } + + public Date getPlannedArrivalDate() { + + if (this.plannedArrivalYear == null || this.plannedArrivalDay == null) return null; + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.setTimeZone(TimeZone.getTimeZone("UTC")); + cal.set(Calendar.YEAR, this.plannedArrivalYear.intValue()); + cal.set(Calendar.DAY_OF_YEAR, this.plannedArrivalDay.intValue()); + + if (this.plannedArrivalTime != null) { + + int hours = this.plannedArrivalTime.intValue() / 60; + int minutes = this.plannedArrivalTime.intValue() % 60; + cal.set(Calendar.HOUR_OF_DAY, hours); + cal.set(Calendar.MINUTE,minutes); + + } + + return cal.getTime(); + } + + public Long getDepartureUTCOffset() { + return departureUTCOffset; + } + + public void setDepartureUTCOffset(Long departureUTCOffset) { + this.departureUTCOffset = departureUTCOffset; + } + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/DeltaCoordinates.java b/src/org/uic/barcode/ticket/api/asn/omv2/DeltaCoordinates.java new file mode 100644 index 0000000..f4e47ea --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/DeltaCoordinates.java @@ -0,0 +1,58 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +public class DeltaCoordinates extends Object { + public DeltaCoordinates() { + } + + @FieldOrder(order = 0) + public Asn1BigInteger longitude; + + @FieldOrder(order = 1) + public Asn1BigInteger latitude; + + public Asn1BigInteger getLongitude() { + + return this.longitude; + } + + public Asn1BigInteger getLatitude() { + + return this.latitude; + } + + public void setLongitude(Asn1BigInteger longitude) { + + this.longitude = longitude; + } + + public void setLatitude(Asn1BigInteger latitude) { + + this.latitude = latitude; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/DocumentData.java b/src/org/uic/barcode/ticket/api/asn/omv2/DocumentData.java new file mode 100644 index 0000000..d6a759b --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/DocumentData.java @@ -0,0 +1,61 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +@HasExtensionMarker +public class DocumentData extends Object { + public DocumentData() { + } + + @FieldOrder(order = 0) + @Asn1Optional public TokenType token; + + @FieldOrder(order = 1) + public TicketDetailData ticket; + + public TokenType getToken() { + + return this.token; + } + + public TicketDetailData getTicket() { + + return this.ticket; + } + + public void setToken(TokenType token) { + + this.token = token; + } + + public void setTicket(TicketDetailData ticket) { + + this.ticket = ticket; + } + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/ExtensionData.java b/src/org/uic/barcode/ticket/api/asn/omv2/ExtensionData.java new file mode 100644 index 0000000..1e3a33a --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/ExtensionData.java @@ -0,0 +1,64 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypesimpl.OctetString; + + +@Sequence +public class ExtensionData extends Object { + public ExtensionData() { + } + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.IA5String) + public String extensionId; + + @FieldOrder(order = 1) + public OctetString extensionData; + + public String getExtensionId() { + + return this.extensionId; + } + + public byte[] getExtensionData() { + + return extensionData.toByteArray(); + } + + public void setExtensionId(String extensionId) { + + this.extensionId = extensionId; + } + + public void setExtensionData(byte[] extensionData) { + + this.extensionData = new OctetString(extensionData); + + } + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/FIPTicketData.java b/src/org/uic/barcode/ticket/api/asn/omv2/FIPTicketData.java new file mode 100644 index 0000000..e11a66f --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/FIPTicketData.java @@ -0,0 +1,331 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; + +public class FIPTicketData extends Object { + public FIPTicketData() { + } + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String referenceIA5; + + @FieldOrder(order = 1) + @Asn1Optional public Asn1BigInteger referenceNum; + + @FieldOrder(order = 2) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long productOwnerNum; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productOwnerIA5; + + @FieldOrder(order = 4) + @IntRange(minValue=0,maxValue=65535) + @Asn1Optional public Long productIdNum; + + @FieldOrder(order = 5) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productIdIA5; + + @FieldOrder(order = 6) + @IntRange(minValue=-1,maxValue=700) + @Asn1Optional public Long validFromDay; + + @FieldOrder(order = 7) + @IntRange(minValue=0,maxValue=370) + @Asn1Optional public Long validUntilDay; + + @FieldOrder(order = 8) + @Asn1Optional public SequenceOfActivatedDays activatedDay; + + @FieldOrder(order = 9) + @Asn1Optional public SequenceOfCarrierNum carrierNum; + + @FieldOrder(order = 10) + @Asn1Optional public SequenceOfStringIA5 carrierIA5; + + @FieldOrder(order = 11) + @IntRange(minValue=1,maxValue=200) + public Long numberOfTravelDays; + + @FieldOrder(order = 12) + public Boolean includesSupplements = false; + + @FieldOrder(order = 13) + @Asn1Default(value="second") + @Asn1Optional public TravelClassType classCode; + + @FieldOrder(order = 14) + @Asn1Optional public ExtensionData extension; + + public String getReferenceIA5() { + + return this.referenceIA5; + } + + public Asn1BigInteger getReferenceNum() { + + return 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 getValidFromDay() { + + return this.validFromDay; + } + + public Long getValidUntilDay() { + + return this.validUntilDay; + } + + public List getActivatedDay() { + + return this.activatedDay; + } + + public List getCarrierNum() { + + return this.carrierNum; + } + + public List getCarrierIA5() { + + return this.carrierIA5; + } + + public Long getNumberOfTravelDays() { + + return this.numberOfTravelDays; + } + + public Boolean getIncludesSupplements() { + + return this.includesSupplements; + } + + public TravelClassType getClassCode() { + if (classCode == null) return TravelClassType.second; + return this.classCode; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public void setReferenceIA5(String referenceIA5) { + + this.referenceIA5 = referenceIA5; + } + + public void setReferenceNum(Asn1BigInteger referenceNum) { + + this.referenceNum = 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 setValidFromDay(Long validFromDay) { + + this.validFromDay = validFromDay; + } + + public void setValidUntilDay(Long validUntilDay) { + + this.validUntilDay = validUntilDay; + } + + public void setActivatedDay(SequenceOfActivatedDays activatedDay) { + + this.activatedDay = activatedDay; + } + + public void setCarrierNum(SequenceOfCarrierNum carrierNum) { + + this.carrierNum = carrierNum; + } + + public void setCarrierIA5(SequenceOfStringIA5 carrierIA5) { + + this.carrierIA5 = carrierIA5; + } + + public void setNumberOfTravelDays(Long numberOfTravelDays) { + + this.numberOfTravelDays = numberOfTravelDays; + } + + public void setIncludesSupplements(Boolean includesSupplements) { + + this.includesSupplements = includesSupplements; + } + + public void setClassCode(TravelClassType classCode) { + this.classCode = classCode; + } + + public void setExtension(ExtensionData extension) { + + this.extension = extension; + } + + public void setValidityDates (Date fromDate, Date untilDate, Date issuingDate){ + + if (issuingDate == null || fromDate == null) return; + + this.validFromDay = DateTimeUtils.getDateDifference(issuingDate,fromDate); + + if (untilDate != null){ + this.validUntilDay = DateTimeUtils.getDateDifference(fromDate, untilDate); + } + + } + + public Date getValidFromDate(Date issuingDate){ + + return DateTimeUtils.getDate(issuingDate, this.validFromDay,null); + + } + + public Date getValidUntilDate(Date issuingDate){ + + if (issuingDate == null) return null; + + if (this.validFromDay == null) { + this.validFromDay = 0L; + } + + if (this.validUntilDay == null) { + return null; + } + + + return DateTimeUtils.getDate(issuingDate, this.validFromDay + this.validUntilDay, null); + + } + + public void setActivatedDays(Collection dates, Date issuingDate){ + + if (this.activatedDay != null) { + this.activatedDay.clear(); + } else { + this.activatedDay= new SequenceOfActivatedDays(); + } + + if (dates != null && !dates.isEmpty()) { + + for (Date day : dates) { + this.addActivatedDay(issuingDate, day); + } + + } + + } + + public void addActivatedDay(Date issuingDate, Date day){ + + Long dayDiff = DateTimeUtils.getDateDifference(issuingDate, day); + + if (this.activatedDay == null) { + this.activatedDay = new SequenceOfActivatedDays(); + } + + if (dayDiff != null) { + this.activatedDay.add(dayDiff); + } + + } + + public Collection getActivatedDays(Date issuingDate) { + + if (this.activatedDay == null) return null; + + ArrayList dates = new ArrayList(); + + for (Long diff: this.getActivatedDay()) { + + Date day = DateTimeUtils.getDate(issuingDate, diff, null); + + if (day != null) { + dates.add(day); + } + + } + + return dates; + + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/GenderType.java b/src/org/uic/barcode/ticket/api/asn/omv2/GenderType.java new file mode 100644 index 0000000..f81f045 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/GenderType.java @@ -0,0 +1,42 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; + +@HasExtensionMarker +public enum GenderType { + unspecified("unspecified"), + female("female"), + male("male"), + other("other"); + + + public String text; + + GenderType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/GeoCoordinateSystemType.java b/src/org/uic/barcode/ticket/api/asn/omv2/GeoCoordinateSystemType.java new file mode 100644 index 0000000..9a5bed4 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/GeoCoordinateSystemType.java @@ -0,0 +1,38 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + + +public enum GeoCoordinateSystemType { + wgs84("wgs84"), + grs80("grs80"); + + + public String text; + + GeoCoordinateSystemType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/GeoCoordinateType.java b/src/org/uic/barcode/ticket/api/asn/omv2/GeoCoordinateType.java new file mode 100644 index 0000000..16c4401 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/GeoCoordinateType.java @@ -0,0 +1,144 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +public class GeoCoordinateType extends Object { + public GeoCoordinateType() { + } + + @FieldOrder(order = 0) + @Asn1Default(value="milliDegree") + @Asn1Optional public GeoUnitType geoUnit; + + @FieldOrder(order = 1) + @Asn1Default(value="wgs84") + @Asn1Optional public GeoCoordinateSystemType coordinateSystem; + + @FieldOrder(order = 2) + @Asn1Default(value="north") + @Asn1Optional public HemisphereLongitudeType hemisphereLongitude; + + @FieldOrder(order = 3) + @Asn1Default(value="east") + @Asn1Optional public HemisphereLatitudeType hemisphereLatitude; + + @FieldOrder(order = 4) + public Asn1BigInteger longitude; + + @FieldOrder(order = 5) + public Asn1BigInteger latitude; + + @FieldOrder(order = 6) + @Asn1Optional public GeoUnitType accuracy; + + public GeoUnitType getGeoUnit() { + + if (geoUnit == null){ + return GeoUnitType.milliDegree; + } + return this.geoUnit; + } + + public GeoCoordinateSystemType getCoordinateSystem() { + + if (coordinateSystem == null) { + return GeoCoordinateSystemType.wgs84; + } + + return this.coordinateSystem; + } + + public HemisphereLongitudeType getHemisphereLongitude() { + + if (hemisphereLongitude == null){ + return HemisphereLongitudeType.north; + } + + return this.hemisphereLongitude; + } + + public HemisphereLatitudeType getHemisphereLatitude() { + + if (hemisphereLatitude == null) { + return HemisphereLatitudeType.east; + } + + return this.hemisphereLatitude; + } + + public Long getLongitude() { + + return Asn1BigInteger.toLong(this.longitude); + } + + public Long getLatitude() { + + return Asn1BigInteger.toLong(this.latitude); + } + + public GeoUnitType getAccuracy() { + + return this.accuracy; + } + + public void setGeoUnit(GeoUnitType geoUnit) { + + this.geoUnit = geoUnit; + } + + public void setCoordinateSystem(GeoCoordinateSystemType coordinateSystem) { + + this.coordinateSystem = coordinateSystem; + } + + public void setHemisphereLongitude(HemisphereLongitudeType hemisphereLongitude) { + + this.hemisphereLongitude = hemisphereLongitude; + } + + public void setHemisphereLatitude(HemisphereLatitudeType hemisphereLatitude) { + + this.hemisphereLatitude = hemisphereLatitude; + } + + public void setLongitude(Long longitude) { + + this.longitude = Asn1BigInteger.toAsn1(longitude); + } + + public void setLatitude(Long latitude) { + + this.latitude = Asn1BigInteger.toAsn1(latitude); + } + + public void setAccuracy(GeoUnitType accuracy) { + + this.accuracy = accuracy; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/GeoUnitType.java b/src/org/uic/barcode/ticket/api/asn/omv2/GeoUnitType.java new file mode 100644 index 0000000..225505b --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/GeoUnitType.java @@ -0,0 +1,40 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +public enum GeoUnitType { + microDegree("microDegree"), + tenthmilliDegree("tenthmilliDegree"), + milliDegree("milliDegree"), + centiDegree("centiDegree"), + deciDegree("deciDegree"); + + + public String text; + + GeoUnitType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/HemisphereLatitudeType.java b/src/org/uic/barcode/ticket/api/asn/omv2/HemisphereLatitudeType.java new file mode 100644 index 0000000..63ea321 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/HemisphereLatitudeType.java @@ -0,0 +1,37 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +public enum HemisphereLatitudeType { + east("east"), + west("west"); + + + public String text; + + HemisphereLatitudeType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/HemisphereLongitudeType.java b/src/org/uic/barcode/ticket/api/asn/omv2/HemisphereLongitudeType.java new file mode 100644 index 0000000..c493255 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/HemisphereLongitudeType.java @@ -0,0 +1,36 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +public enum HemisphereLongitudeType { + north("north"), + south("south"); + + public String text; + + HemisphereLongitudeType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/IncludedOpenTicketType.java b/src/org/uic/barcode/ticket/api/asn/omv2/IncludedOpenTicketType.java new file mode 100644 index 0000000..dc43d75 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/IncludedOpenTicketType.java @@ -0,0 +1,448 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Date; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.SizeRange; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; + +public class IncludedOpenTicketType extends Object { + public IncludedOpenTicketType() { + } + + @FieldOrder(order = 0) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long productOwnerNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productOwnerIA5; + + @FieldOrder(order = 2) + @IntRange(minValue=0,maxValue=65535) + @Asn1Optional public Long productIdNum; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productIdIA5; + + @FieldOrder(order = 4) + @Asn1Optional public Asn1BigInteger externalIssuerId; + + @FieldOrder(order = 5) + @Asn1Optional public Asn1BigInteger issuerAutorizationId; + + @FieldOrder(order = 6) + @Asn1Default("stationUIC") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 7) + @Asn1Optional public SequenceOfRegionalValidityType validRegion; + + @FieldOrder(order = 8) + @IntRange(minValue=-1,maxValue=700) + @Asn1Optional public Long validFromDay; + + @FieldOrder(order = 9) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long validFromTime; + + @FieldOrder(order = 10) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validFromUTCOffset; + + @FieldOrder(order = 11) + @IntRange(minValue=0,maxValue=370) + @Asn1Optional public Long validUntilDay; + + @FieldOrder(order = 12) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long validUntilTime; + + @FieldOrder(order = 13) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validUntilUTCOffset; + + @FieldOrder(order = 14) + @Asn1Default(value="second") + @Asn1Optional public TravelClassType classCode; + + @FieldOrder(order = 15) + @SizeRange(minValue = 1, maxValue = 2) + @Asn1Optional public String serviceLevel; + + @FieldOrder(order = 16) + @Asn1Optional public SequenceOfCarrierNum includedCarriersNum; + + @FieldOrder(order = 17) + @Asn1Optional public SequenceOfStringIA5 includedCarriersIA5; + + @FieldOrder(order = 18) + @Asn1Optional public SequenceOfServiceBrands includedServiceBrands; + + @FieldOrder(order = 19) + @Asn1Optional public SequenceOfServiceBrands excludedServiceBrands; + + @FieldOrder(order = 20) + @Asn1Optional public SequenceOfTariffType tariffs; + + @FieldOrder(order = 21) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String infoText; + + @FieldOrder(order = 22) + @Asn1Optional public SequenceOfTransportTypes includedTransportTypes; + + @FieldOrder(order = 23) + @Asn1Optional public SequenceOfTransportTypes excludedTransportTypes; + + @FieldOrder(order = 24) + @Asn1Optional public ExtensionData extension; + + 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 getExternalIssuerId() { + + return Asn1BigInteger.toLong(this.externalIssuerId); + } + + public Long getIssuerAutorizationId() { + + return Asn1BigInteger.toLong(this.issuerAutorizationId); + } + + public CodeTableType getStationCodeTable() { + + if (stationCodeTable == null) { + return CodeTableType.stationUIC; + } + + return this.stationCodeTable; + } + + public List getValidRegion() { + + return this.validRegion; + } + + public Long getValidFromDay() { + + return this.validFromDay; + } + + public Long getValidFromTime() { + + return this.validFromTime; + } + + public Long getValidUntilDay() { + + return this.validUntilDay; + } + + public Long getValidUntilTime() { + + return this.validUntilTime; + } + + public TravelClassType getClassCode() { + + if (classCode == null) { + return TravelClassType.second; + } + + return this.classCode; + } + + public String getServiceLevel() { + + return this.serviceLevel; + } + + public List getIncludedCarriersNum() { + + return this.includedCarriersNum; + } + + public List getIncludedCarriersIA5() { + + return this.includedCarriersIA5; + } + + public List getIncludedServiceBrands() { + + return this.includedServiceBrands; + } + + public List getExcludedServiceBrands() { + + return this.excludedServiceBrands; + } + + + + public SequenceOfTransportTypes getIncludedTransportTypes() { + return includedTransportTypes; + } + + public void setIncludedTransportTypes(SequenceOfTransportTypes includedTransportTypes) { + this.includedTransportTypes = includedTransportTypes; + } + + public SequenceOfTransportTypes getExcludedTransportTypes() { + return excludedTransportTypes; + } + + public void setExcludedTransportTypes(SequenceOfTransportTypes excludedTransportTypes) { + this.excludedTransportTypes = excludedTransportTypes; + } + + public List getTariffs() { + + return this.tariffs; + } + + public String getInfoText() { + + return this.infoText; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + 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 setExternalIssuerId(Long externalIssuerId) { + + this.externalIssuerId = Asn1BigInteger.toAsn1(externalIssuerId); + } + + public void setIssuerAutorizationId(Long issuerAutorizationId) { + + this.issuerAutorizationId = Asn1BigInteger.toAsn1(issuerAutorizationId); + } + + public void setStationCodeTable(CodeTableType stationCodeTable) { + + this.stationCodeTable = stationCodeTable; + } + + public void setValidRegion(SequenceOfRegionalValidityType validRegion) { + + this.validRegion = validRegion; + } + + public void setValidFromDay(Long validFromDay) { + + this.validFromDay = validFromDay; + } + + public void setValidFromTime(Long validFromTime) { + + this.validFromTime = validFromTime; + } + + public void setValidUntilDay(Long validUntilDay) { + + this.validUntilDay = validUntilDay; + } + + public void setValidUntilTime(Long validUntilTime) { + + this.validUntilTime = validUntilTime; + } + + public void setClassCode(TravelClassType classCode) { + + this.classCode = classCode; + } + + public void setServiceLevel(String serviceLevel) { + + this.serviceLevel = serviceLevel; + } + + public void setIncludedCarriersNum(SequenceOfCarrierNum includedCarriersNum) { + + this.includedCarriersNum = includedCarriersNum; + } + + public void setIncludedCarriersIA5(SequenceOfStringIA5 includedCarriersIA5) { + + this.includedCarriersIA5 = includedCarriersIA5; + } + + public void setIncludedServiceBrands(SequenceOfServiceBrands includedServiceBrands) { + + this.includedServiceBrands = includedServiceBrands; + } + + public void setExcludedServiceBrands(SequenceOfServiceBrands excludedServiceBrands) { + + this.excludedServiceBrands = excludedServiceBrands; + } + + public void setTariffs(SequenceOfTariffType tariffs) { + + this.tariffs = tariffs; + } + + public void setInfoText(String infoText) { + + this.infoText = infoText; + } + + public void setExtension(ExtensionData extension) { + + this.extension = extension; + } + + public void setValidityDates (Date fromDate, Date untilDate, Date issuingDate){ + + if (issuingDate == null || fromDate == null) return; + + this.validFromDay = DateTimeUtils.getDateDifference(issuingDate,fromDate); + this.validFromTime = DateTimeUtils.getTime(fromDate); + + + if (untilDate != null){ + this.validUntilDay = DateTimeUtils.getDateDifference(fromDate, untilDate); + this.validUntilTime = DateTimeUtils.getTime(untilDate); + } + + } + + public void setValidFromTimeZone(Date dateLocal, Date dateUTC ) { + // -- (UTC = local + offset * 15 Minutes) + this.validFromUTCOffset = new Long(dateLocal.getTime() - dateUTC.getTime()) / (1000 * 60 * 15); + } + + public void setValidUntilTimeZone(Date dateLocal, Date dateUTC ) { + // -- (UTC = local + offset * 15 Minutes) + this.validUntilUTCOffset = new Long(dateLocal.getTime() - dateUTC.getTime()) / (1000 * 60 * 15); + + if (this.validFromUTCOffset.longValue() == this.validUntilUTCOffset.longValue()) { + this.validUntilUTCOffset = null; + } + } + + + + public Date getValidFromDate(Date issuingDate){ + + return DateTimeUtils.getDate(issuingDate, this.validFromDay, this.validFromTime); + + } + + public Date getValidUntilDate(Date issuingDate){ + + if (issuingDate == null) return null; + + if (this.validFromDay == null) { + this.validFromDay = 0L; + } + + if (this.validUntilDay == null) { + return null; + } + + return DateTimeUtils.getDate(issuingDate, this.validFromDay + this.validUntilDay, this.validUntilTime); + + } + + public Date getUTCValidFromDate(Date issuingDate){ + return DateTimeUtils.getUTCDate(issuingDate, this.validFromDay, this.validFromTime, this.validFromUTCOffset); + } + + public Date getUTCValidUntilDate(Date issuingDate){ + if (this.validUntilUTCOffset == null) { + return DateTimeUtils.getUTCDate(issuingDate, this.validFromDay, this.validFromTime, this.validFromUTCOffset); + } else { + return DateTimeUtils.getUTCDate(issuingDate, this.validFromDay, this.validUntilTime, this.validFromUTCOffset); + } + } + + public Long getValidFromUTCOffset() { + return validFromUTCOffset; + } + + public void setValidFromUTCOffset(Long validFromUTCOffset) { + this.validFromUTCOffset = validFromUTCOffset; + } + + public Long getValidUntilUTCOffset() { + return validUntilUTCOffset; + } + + public void setValidUntilUTCOffset(Long validUntilUTCOffset) { + this.validUntilUTCOffset = validUntilUTCOffset; + } + + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/IssuingData.java b/src/org/uic/barcode/ticket/api/asn/omv2/IssuingData.java new file mode 100644 index 0000000..2491d79 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/IssuingData.java @@ -0,0 +1,360 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.FixedSize; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +@HasExtensionMarker +public class IssuingData extends Object { + public IssuingData() { + } + + @FieldOrder(order = 0) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long securityProviderNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String securityProviderIA5; + + @FieldOrder(order = 2) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long issuerNum; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String issuerIA5; + + @FieldOrder(order = 4) + @IntRange(minValue=2016,maxValue=2269) + public Long issuingYear; + + @FieldOrder(order = 5) + @IntRange(minValue=1,maxValue=366) + public Long issuingDay; + + @FieldOrder(order = 6) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long issuingTime; + + @FieldOrder(order = 7) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String issuerName; + + @FieldOrder(order = 8) + public Boolean specimen = false; + + @FieldOrder(order = 9) + public Boolean securePaperTicket = false; + + @FieldOrder(order = 10) + public Boolean activated = true; + + @FieldOrder(order = 11) + @FixedSize(3) + @Asn1Default(value="EUR") + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String currency; + + @FieldOrder(order = 12) + @IntRange(minValue=1,maxValue=3) + @Asn1Default(value="2") + @Asn1Optional public Long currencyFract; + + @FieldOrder(order = 13) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String issuerPNR; + + @FieldOrder(order = 14) + @Asn1Optional public ExtensionData extension; + + @FieldOrder(order = 15) + @Asn1Optional public Asn1BigInteger issuedOnTrainNum; + + @FieldOrder(order = 16) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String issuedOnTrainIA5; + + @FieldOrder(order = 17) + @Asn1Optional public Asn1BigInteger issuedOnLine; + + @FieldOrder(order = 18) + @Asn1Optional public GeoCoordinateType pointOfSale; + + + + + + + public Long getSecurityProviderNum() { + + return this.securityProviderNum; + } + + public String getSecurityProviderIA5() { + + return this.securityProviderIA5; + } + + public Long getIssuerNum() { + + return this.issuerNum; + } + + public String getIssuerIA5() { + + return this.issuerIA5; + } + + public Long getIssuingYear() { + + return this.issuingYear; + } + + public Long getIssuingDay() { + + return this.issuingDay; + } + + public Long getIssuingTime() { + + return this.issuingTime; + } + + public String getIssuerName() { + + return this.issuerName; + } + + public Boolean getSpecimen() { + + return this.specimen; + } + + public Boolean getSecurePaperTicket() { + + return this.securePaperTicket; + } + + public Boolean getActivated() { + + return this.activated; + } + + public String getCurrency() { + + if (currency == null || currency.length() == 0){ + return "EUR"; + } + + return this.currency; + } + + public Long getCurrencyFract() { + + if (currencyFract == null) { + return new Long(2); + } + return this.currencyFract; + } + + public String getIssuerPNR() { + + return this.issuerPNR; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public Long getIssuedOnTrainNum() { + + return Asn1BigInteger.toLong(issuedOnTrainNum); + } + + public String getIssuedOnTrainIA5() { + + return this.issuedOnTrainIA5; + } + + public Long getIssuedOnLine() { + + return Asn1BigInteger.toLong(issuedOnLine); + } + + public GeoCoordinateType getPointOfSale() { + + return this.pointOfSale; + } + + public void setSecurityProviderNum(Long securityProviderNum) { + + this.securityProviderNum = securityProviderNum; + } + + public void setSecurityProviderIA5(String securityProviderIA5) { + + this.securityProviderIA5 = securityProviderIA5; + } + + public void setIssuerNum(Long issuerNum) { + + this.issuerNum = issuerNum; + } + + public void setIssuerIA5(String issuerIA5) { + + this.issuerIA5 = issuerIA5; + } + + public void setIssuingYear(Long issuingYear) { + + this.issuingYear = issuingYear; + } + + public void setIssuingDay(Long issuingDay) { + + this.issuingDay = issuingDay; + } + + public void setIssuingTime(Long issuingTime) { + + this.issuingTime = issuingTime; + } + + public void setIssuerName(String issuerName) { + + this.issuerName = issuerName; + } + + public void setSpecimen(Boolean specimen) { + + this.specimen = specimen; + } + + public void setSecurePaperTicket(Boolean securePaperTicket) { + + this.securePaperTicket = securePaperTicket; + } + + public void setActivated(Boolean activated) { + + this.activated = activated; + } + + public void setCurrency(String currency) { + + this.currency = currency; + } + + public void setCurrencyFract(Long currencyFract) { + + this.currencyFract = currencyFract; + } + + public void setIssuerPNR(String issuerPNR) { + + this.issuerPNR = issuerPNR; + } + + public void setExtension(ExtensionData extension) { + + this.extension = extension; + } + + public void setIssuedOnTrainNum(Long issuedOnTrainNum) { + + this.issuedOnTrainNum = Asn1BigInteger.toAsn1(issuedOnTrainNum); + } + + public void setIssuedOnTrainIA5(String issuedOnTrainIA5) { + + this.issuedOnTrainIA5 = issuedOnTrainIA5; + } + + public void setIssuedOnLine(Long issuedOnLine) { + + this.issuedOnLine = Asn1BigInteger.toAsn1(issuedOnLine); + } + + public void setPointOfSale(GeoCoordinateType pointOfSale) { + + this.pointOfSale = pointOfSale; + } + + public void setIssuingDate(Date date){ + + if (date == null) { + date = Calendar.getInstance().getTime(); + } + + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + + this.issuingYear = new Long( cal.get(Calendar.YEAR)); + this.issuingDay = new Long (cal.get(Calendar.DAY_OF_YEAR)); + int time = cal.get(Calendar.HOUR_OF_DAY) * 60 + cal.get(Calendar.MINUTE); + if (time > 0) { + this.issuingTime = new Long (time ); + } + + } + + public Date getIssuingDate() { + + if (this.issuingYear == null || this.issuingDay == null) return null; + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.setTimeZone(TimeZone.getTimeZone("UTC")); + cal.set(Calendar.YEAR, this.issuingYear.intValue()); + cal.set(Calendar.DAY_OF_YEAR, this.issuingDay.intValue()); + + if (this.issuingTime != null) { + + int hours = this.issuingTime.intValue() / 60; + int minutes = this.issuingTime.intValue() % 60; + cal.set(Calendar.HOUR_OF_DAY, hours); + cal.set(Calendar.MINUTE,minutes); + + } + + return cal.getTime(); + } + + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/LineType.java b/src/org/uic/barcode/ticket/api/asn/omv2/LineType.java new file mode 100644 index 0000000..fff4499 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/LineType.java @@ -0,0 +1,185 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypesimpl.OctetString; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfUnrestrictedLong; + +@Sequence +@HasExtensionMarker + +public class LineType extends Object { + public LineType() { + } + + @FieldOrder(order = 0) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long carrierNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String carrierIA5; + + @FieldOrder(order = 2) + @Asn1Optional public SequenceOfUnrestrictedLong lineId; + + @FieldOrder(order = 3) + @Asn1Default("stationUIC") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 4) + @IntRange(minValue=0,maxValue=9999999) + @Asn1Optional public Long entryStationNum; + + @FieldOrder(order = 5) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String entryStationIA5; + + @FieldOrder(order = 6) + @IntRange(minValue=0,maxValue=9999999) + @Asn1Optional public Long terminatingStationNum; + + @FieldOrder(order = 7) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String terminatingStationIA5; + + @FieldOrder(order = 8) + @Asn1Optional public Asn1BigInteger city; + + @FieldOrder(order = 9) + @Asn1Optional public OctetString binaryZoneId; + + + + public Long getCarrierNum() { + + return this.carrierNum; + } + + public String getCarrierIA5() { + + return this.carrierIA5; + } + + public SequenceOfUnrestrictedLong getLineId() { + + return this.lineId; + } + + public CodeTableType getStationCodeTable() { + + if (stationCodeTable == null) { + return CodeTableType.stationUIC; + } + + return this.stationCodeTable; + } + + public Long getEntryStationNum() { + + return this.entryStationNum; + } + + public String getEntryStationIA5() { + + return this.entryStationIA5; + } + + public Long getTerminatingStationNum() { + + return this.terminatingStationNum; + } + + public String getTerminatingStationIA5() { + + return this.terminatingStationIA5; + } + + public Long getCity() { + + return Asn1BigInteger.toLong(this.city); + } + + public byte[] getBinaryZoneId() { + + return binaryZoneId.toByteArray(); + } + + public void setCarrierNum(Long carrierNum) { + + this.carrierNum = carrierNum; + } + + public void setCarrierIA5(String carrierIA5) { + + this.carrierIA5 = carrierIA5; + } + + public void setLineId(SequenceOfUnrestrictedLong lineId) { + + this.lineId = lineId; + } + + public void setStationCodeTable(CodeTableType stationCodeTable) { + + this.stationCodeTable = stationCodeTable; + } + + public void setEntryStationNum(Long entryStationNum) { + + this.entryStationNum = entryStationNum; + } + + public void setEntryStationIA5(String entryStationIA5) { + + this.entryStationIA5 = entryStationIA5; + } + + public void setTerminatingStationNum(Long terminatingStationNum) { + + this.terminatingStationNum = terminatingStationNum; + } + + public void setTerminatingStationIA5(String terminatingStationIA5) { + + this.terminatingStationIA5 = terminatingStationIA5; + } + + public void setCity(Long city) { + + this.city = Asn1BigInteger.toAsn1(city); + } + + public void setBinaryZoneId(byte[] binaryZoneId) { + + this.binaryZoneId = new OctetString(binaryZoneId); + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/LinkMode.java b/src/org/uic/barcode/ticket/api/asn/omv2/LinkMode.java new file mode 100644 index 0000000..f4e7635 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/LinkMode.java @@ -0,0 +1,39 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; + +@HasExtensionMarker +public enum LinkMode { + issuedTogether("issuedTogether"), + onlyValidInCombination("onlyValidInCombination"); + + public String text; + + LinkMode(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/LoadingDeckType.java b/src/org/uic/barcode/ticket/api/asn/omv2/LoadingDeckType.java new file mode 100644 index 0000000..8662877 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/LoadingDeckType.java @@ -0,0 +1,38 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + + +public enum LoadingDeckType { + unspecified("unspecified"), + upper("upper"), + lower("lower"); + + public String text; + + LoadingDeckType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/LuggageRestrictionType.java b/src/org/uic/barcode/ticket/api/asn/omv2/LuggageRestrictionType.java new file mode 100644 index 0000000..caa1caa --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/LuggageRestrictionType.java @@ -0,0 +1,88 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +@HasExtensionMarker +public class LuggageRestrictionType extends Object { + public LuggageRestrictionType() { + } + + @FieldOrder(order = 0) + @IntRange(minValue=0,maxValue=99) + @Asn1Default(value="3") + @Asn1Optional public Long maxHandLuggagePieces; + + @FieldOrder(order = 1) + @IntRange(minValue=0,maxValue=99) + @Asn1Default(value="1") + @Asn1Optional public Long maxNonHandLuggagePieces; + + @FieldOrder(order = 2) + @Asn1Optional public SequenceOfRegisteredLuggageType registeredLuggage; + + + public void setRegisteredLuggage( + SequenceOfRegisteredLuggageType registeredLuggage) { + this.registeredLuggage = registeredLuggage; + } + + public Long getMaxHandLuggagePieces() { + + if (maxHandLuggagePieces == null) { + return new Long(3); + } + + return this.maxHandLuggagePieces; + } + + public Long getMaxNonHandLuggagePieces() { + + if (maxNonHandLuggagePieces == null) { + return new Long(1); + } + + return this.maxNonHandLuggagePieces; + } + + public SequenceOfRegisteredLuggageType getRegisteredLuggage() { + + return this.registeredLuggage; + } + + public void setMaxHandLuggagePieces(Long maxHandLuggagePieces) { + + this.maxHandLuggagePieces = maxHandLuggagePieces; + } + + public void setMaxNonHandLuggagePieces(Long maxNonHandLuggagePieces) { + + this.maxNonHandLuggagePieces = maxNonHandLuggagePieces; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/OpenTicketData.java b/src/org/uic/barcode/ticket/api/asn/omv2/OpenTicketData.java new file mode 100644 index 0000000..402323e --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/OpenTicketData.java @@ -0,0 +1,674 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypes.SizeRange; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; + +@Sequence +@HasExtensionMarker +public class OpenTicketData extends Object { + public OpenTicketData() { + } + + @FieldOrder(order = 0) + @Asn1Optional public Asn1BigInteger referenceNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String referenceIA5; + + @FieldOrder(order = 2) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long productOwnerNum; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productOwnerIA5; + + @FieldOrder(order = 4) + @IntRange(minValue=0,maxValue=65535) + @Asn1Optional public Long productIdNum; + + @FieldOrder(order = 5) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productIdIA5; + + @FieldOrder(order = 6) + @Asn1Optional public Asn1BigInteger externalIssuerId; + + @FieldOrder(order = 7) + @Asn1Optional public Asn1BigInteger issuerAutorizationId; + + @FieldOrder(order = 8) + public Boolean returnIncluded = false; + + @FieldOrder(order = 9) + @Asn1Default("stationUIC") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 10) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long fromStationNum; + + @FieldOrder(order = 11) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String fromStationIA5; + + @FieldOrder(order = 12) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long toStationNum; + + @FieldOrder(order = 13) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String toStationIA5; + + @FieldOrder(order = 14) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String fromStationNameUTF8; + + @FieldOrder(order = 15) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String toStationNameUTF8; + + @FieldOrder(order = 16) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String validRegionDesc; + + @FieldOrder(order = 17) + @Asn1Optional public SequenceOfRegionalValidityType validRegion; + + @FieldOrder(order = 18) + @Asn1Optional public ReturnRouteDescriptionType returnDescription; + + @FieldOrder(order = 19) + @Asn1Default(value = "0") + @IntRange(minValue=-1,maxValue=700) + @Asn1Optional public Long validFromDay; + + @FieldOrder(order = 20) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long validFromTime; + + @FieldOrder(order = 21) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validFromUTCOffset; + + @FieldOrder(order = 22) + @Asn1Default(value = "0") + @IntRange(minValue=0,maxValue=370) + @Asn1Optional public Long validUntilDay; + + @FieldOrder(order = 23) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long validUntilTime; + + @FieldOrder(order = 24) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validUntilUTCOffset; + + @FieldOrder(order = 25) + @Asn1Optional public SequenceOfActivatedDays activatedDay; + + @FieldOrder(order = 26) + @Asn1Default(value="second") + @Asn1Optional public TravelClassType classCode; + + @FieldOrder(order = 27) + @SizeRange(minValue = 1, maxValue = 2) + @Asn1Optional public String serviceLevel; + + @FieldOrder(order = 28) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public SequenceOfCarrierNum carrierNum; + + @FieldOrder(order = 29) + @Asn1Optional public SequenceOfStringIA5 carrierIA5; + + @FieldOrder(order = 30) + @Asn1Optional public SequenceOfServiceBrands includedServiceBrands; + + @FieldOrder(order = 31) + @Asn1Optional public SequenceOfServiceBrands excludedServiceBrands; + + @FieldOrder(order = 32) + @Asn1Optional public SequenceOfTariffType tariffs; + + @FieldOrder(order = 33) + @Asn1Optional Asn1BigInteger price; + + @FieldOrder(order = 34) + @Asn1Optional SequenceOfVatDetail vatDetails; + + @FieldOrder(order = 35) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String infoText; + + @FieldOrder(order = 36) + @Asn1Optional public SequenceOfIncludedOpenTicketType includedAddOns; + + @FieldOrder(order = 37) + @Asn1Optional public LuggageRestrictionType luggage; + + @FieldOrder(order = 38) + @Asn1Optional public SequenceOfTransportTypes includedTransportTypes; + + @FieldOrder(order = 39) + @Asn1Optional public SequenceOfTransportTypes excludedTransportTypes; + + @FieldOrder(order = 40) + @Asn1Optional public ExtensionData extension; + + + + + public Long getReferenceNum() { + return Asn1BigInteger.toLong(this.referenceNum); + } + + public String getReferenceIA5() { + + return this.referenceIA5; + } + + 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 getExtIssuerId() { + + return Asn1BigInteger.toLong(externalIssuerId); + } + + public Long getIssuerAutorizationId() { + + return Asn1BigInteger.toLong(issuerAutorizationId); + } + + public Boolean getReturnIncluded() { + + return this.returnIncluded; + } + + public CodeTableType getStationCodeTable() { + + if (stationCodeTable == null) { + return CodeTableType.stationUIC; + } + + + 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 String getValidRegionDesc() { + + return this.validRegionDesc; + } + + public List getValidRegion() { + + return this.validRegion; + } + + public ReturnRouteDescriptionType getReturnDescription() { + + return this.returnDescription; + } + + public Long getValidFromDay() { + + return this.validFromDay; + } + + public Long getValidFromTime() { + + return this.validFromTime; + } + + public Long getValidUntilDay() { + + return this.validUntilDay; + } + + public Long getValidUntilTime() { + + return this.validUntilTime; + } + + public List getActivatedDay() { + + return this.activatedDay; + } + + public TravelClassType getClassCode() { + + if (classCode == null) { + return TravelClassType.second; + } + + return this.classCode; + } + + public String getServiceLevel() { + + return this.serviceLevel; + } + + public List getCarriersNum() { + + return this.carrierNum; + } + + public List getCarriersIA5() { + + return this.carrierIA5; + } + + public List getIncludedServiceBrands() { + + return this.includedServiceBrands; + } + + public List getExcludedServiceBrands() { + + return this.excludedServiceBrands; + } + + public List getTariffs() { + + return this.tariffs; + } + + public String getInfoText() { + + return this.infoText; + } + + public List getIncludedAddOns() { + + return this.includedAddOns; + } + + public LuggageRestrictionType getLuggage() { + + return this.luggage; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public void setReferenceNum(Long referenceNum) { + this.referenceNum = Asn1BigInteger.toAsn1(referenceNum); + } + + public void setReferenceIA5(String referenceIA5) { + + this.referenceIA5 = referenceIA5; + } + + 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 setExtIssuerId(Long extIssuerId) { + this.externalIssuerId = Asn1BigInteger.toAsn1(extIssuerId); + } + + public void setIssuerAutorizationId(Long issuerAutorizationId) { + + this.issuerAutorizationId = Asn1BigInteger.toAsn1(issuerAutorizationId); + } + + public void setReturnIncluded(Boolean returnIncluded) { + this.returnIncluded = returnIncluded; + } + + 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 setValidRegionDesc(String validRegionDesc) { + this.validRegionDesc = validRegionDesc; + } + + public void setValidRegion(SequenceOfRegionalValidityType validRegion) { + this.validRegion = validRegion; + } + + public void setReturnDescription(ReturnRouteDescriptionType returnDescription) { + this.returnDescription = returnDescription; + } + + public void setValidFromDay(Long validFromDay) { + this.validFromDay = validFromDay; + } + + public void setValidFromTime(Long validFromTime) { + this.validFromTime = validFromTime; + } + + public void setValidUntilDay(Long validUntilDay) { + this.validUntilDay = validUntilDay; + } + + public void setValidUntilTime(Long validUntilTime) { + this.validUntilTime = validUntilTime; + } + + public void setActivatedDay(SequenceOfActivatedDays activatedDay) { + this.activatedDay = activatedDay; + } + + public void setClassCode(TravelClassType classCode) { + this.classCode = classCode; + } + + public void setServiceLevel(String serviceLevel) { + this.serviceLevel = serviceLevel; + } + + public void setCarriersNum(SequenceOfCarrierNum carriersNum) { + + this.carrierNum = carriersNum; + } + + public void setCarriersIA5(SequenceOfStringIA5 carriersIA5) { + this.carrierIA5 = carriersIA5; + } + + public void setIncludedServiceBrands(SequenceOfServiceBrands includedServiceBrands) { + this.includedServiceBrands = includedServiceBrands; + } + + public void setExcludedServiceBrands(SequenceOfServiceBrands excludedServiceBrands) { + this.excludedServiceBrands = excludedServiceBrands; + } + + + public SequenceOfTransportTypes getIncludedTransportTypes() { + return includedTransportTypes; + } + + public void setIncludedTransportTypes(SequenceOfTransportTypes includedTransportTypes) { + this.includedTransportTypes = includedTransportTypes; + } + + public SequenceOfTransportTypes getExcludedTransportTypes() { + return excludedTransportTypes; + } + + public void setExcludedTransportTypes(SequenceOfTransportTypes excludedTransportTypes) { + this.excludedTransportTypes = excludedTransportTypes; + } + + public void setTariffs(SequenceOfTariffType tariffs) { + this.tariffs = tariffs; + } + + public void setInfoText(String infoText) { + + this.infoText = infoText; + } + + public void setIncludedAddOns(SequenceOfIncludedOpenTicketType includedAddOns) { + this.includedAddOns = includedAddOns; + } + + public void setLuggage(LuggageRestrictionType luggage) { + this.luggage = luggage; + } + + 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 setValidityDates (Date fromDate, Date untilDate, Date issuingDate){ + + if (issuingDate == null || fromDate == null) return; + + this.validFromDay = DateTimeUtils.getDateDifference(issuingDate,fromDate); + this.validFromTime = DateTimeUtils.getTime(fromDate); + + if (untilDate != null){ + this.validUntilDay = DateTimeUtils.getDateDifference(fromDate, untilDate); + this.validUntilTime = DateTimeUtils.getTime(untilDate); + } + + } + + public Date getValidFromDate(Date issuingDate){ + + return DateTimeUtils.getDate(issuingDate, this.validFromDay, this.validFromTime); + + } + + public Date getValidUntilDate(Date issuingDate){ + + if (issuingDate == null) return null; + + if (this.validFromDay == null) { + this.validFromDay = 0L; + } + + if (this.validUntilDay == null) { + return null; + } + + + return DateTimeUtils.getDate(issuingDate, this.validFromDay + this.validUntilDay, this.validUntilTime); + + } + + + + public void setActivatedDays(Collection dates, Date issuingDate){ + + if (this.activatedDay != null) { + this.activatedDay.clear(); + } else { + this.activatedDay= new SequenceOfActivatedDays(); + } + + if (dates != null && !dates.isEmpty()) { + + for (Date day : dates) { + this.addActivatedDay(issuingDate, day); + } + + } + + } + + public void addActivatedDay(Date issuingDate, Date day){ + + Long dayDiff = DateTimeUtils.getDateDifference(issuingDate, day); + + if (this.activatedDay == null) { + this.activatedDay = new SequenceOfActivatedDays(); + } + + if (dayDiff != null) { + this.activatedDay.add(dayDiff); + } + + } + + public Collection getActivatedDays(Date issuingDate) { + + if (this.activatedDay == null) return null; + + ArrayList dates = new ArrayList(); + + for (Long diff: this.getActivatedDay()) { + + Date day = DateTimeUtils.getDate(issuingDate, diff, null); + + if (day != null) { + dates.add(day); + } + + } + + return dates; + + } + public Long getValidFromUTCOffset() { + return validFromUTCOffset; + } + + public void setValidFromUTCOffset(Long validFromUTCOffset) { + this.validFromUTCOffset = validFromUTCOffset; + } + + public Long getValidUntilUTCOffset() { + return validUntilUTCOffset; + } + + public void setValidUntilUTCOffset(Long validUntilUTCOffset) { + this.validUntilUTCOffset = validUntilUTCOffset; + } + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/ParkingGroundData.java b/src/org/uic/barcode/ticket/api/asn/omv2/ParkingGroundData.java new file mode 100644 index 0000000..1e14394 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/ParkingGroundData.java @@ -0,0 +1,363 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Date; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +@HasExtensionMarker +public class ParkingGroundData extends Object { + public ParkingGroundData() { + } + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String referenceIA5; + + @FieldOrder(order = 1) + @Asn1Optional public Asn1BigInteger referenceNum; + + @FieldOrder(order = 2) + @RestrictedString(CharacterRestriction.IA5String) + public String parkingGroundId; + + @FieldOrder(order = 3) + @IntRange(minValue=0,maxValue=370) + @Asn1Optional public Long fromParkingDate; + + @FieldOrder(order = 4) + @IntRange(minValue=0,maxValue=370) + @Asn1Optional public Long toParkingDate; + + @FieldOrder(order = 5) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long productOwnerNum; + + @FieldOrder(order = 6) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productOwnerIA5; + + @FieldOrder(order = 7) + @IntRange(minValue=0,maxValue=65535) + @Asn1Optional public Long productIdNum; + + @FieldOrder(order = 8) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productIdIA5; + + @FieldOrder(order = 9) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String accessCode; + + @FieldOrder(order = 10) + @RestrictedString(CharacterRestriction.UTF8String) + public String location; + + @FieldOrder(order = 11) + @Asn1Default("stationUIC") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 12) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long stationNum; + + @FieldOrder(order = 13) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String stationIA5; + + @FieldOrder(order = 14) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String specialInformation; + + @FieldOrder(order = 15) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String entryTrack; + + @FieldOrder(order = 16) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String numberPlate; + + @FieldOrder(order = 17) + @Asn1Optional Asn1BigInteger price; + + @FieldOrder(order = 18) + @Asn1Optional SequenceOfVatDetail vatDetails; + + @FieldOrder(order = 19) + @Asn1Optional public ExtensionData extension; + + + + + public String getReferenceIA5() { + + return this.referenceIA5; + } + + public Asn1BigInteger getReferenceNum() { + + return this.referenceNum; + } + + public String getParkingGroundId() { + + return this.parkingGroundId; + } + + public Long getFromParkingDate() { + + return this.fromParkingDate; + } + + public Long getToParkingDate() { + + return this.toParkingDate; + } + + 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 String getAccessCode() { + + return this.accessCode; + } + + public String getLocation() { + + return this.location; + } + + public CodeTableType getStationCodeTable() { + + if (stationCodeTable == null) { + return CodeTableType.stationUIC; + } + + return this.stationCodeTable; + } + + public Long getStationNum() { + + return this.stationNum; + } + + public String getStationIA5() { + + return this.stationIA5; + } + + public String getSpecialInformation() { + + return this.specialInformation; + } + + public String getEntryTrack() { + + return this.entryTrack; + } + + public String getNumberPlate() { + + return this.numberPlate; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public void setReferenceIA5(String referenceIA5) { + + this.referenceIA5 = referenceIA5; + } + + public void setReferenceNum(Asn1BigInteger referenceNum) { + + this.referenceNum = referenceNum; + } + + public void setParkingGroundId(String parkingGroundId) { + + this.parkingGroundId = parkingGroundId; + } + + public void setFromParkingDate(Long fromParkingDate) { + + this.fromParkingDate = fromParkingDate; + } + + public void setToParkingDate(Long toParkingDate) { + + this.toParkingDate = toParkingDate; + } + + 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 setAccessCode(String accessCode) { + + this.accessCode = accessCode; + } + + public void setLocation(String location) { + + this.location = location; + } + + public void setStationCodeTable(CodeTableType stationCodeTable) { + + this.stationCodeTable = stationCodeTable; + } + + public void setStationNum(Long stationNum) { + + this.stationNum = stationNum; + } + + public void setStationIA5(String stationIA5) { + + this.stationIA5 = stationIA5; + } + + public void setSpecialInformation(String specialInformation) { + + this.specialInformation = specialInformation; + } + + public void setEntryTrack(String entryTrack) { + + this.entryTrack = entryTrack; + } + + public void setNumberPlate(String numberPlate) { + + this.numberPlate = numberPlate; + } + + 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 setParkingDate (Date fromDate, Date issuingDate){ + + if (issuingDate == null || fromDate == null) return; + + this.fromParkingDate = DateTimeUtils.getDateDifference(issuingDate,fromDate); + + } + + public Date getFromParkingDate(Date issuingDate){ + + return DateTimeUtils.getDate(issuingDate, this.fromParkingDate, null); + + } + + public Date getToParkingDate(Date issuingDate) { + + if ( this.toParkingDate == null) return null; + + return DateTimeUtils.getDate(issuingDate, this.fromParkingDate + this.toParkingDate, null); + + } + + public void setParkingDates(Date fromDate, Date toDate, Date issuingDate) { + + if (issuingDate == null || fromDate == null) return; + + this.fromParkingDate = DateTimeUtils.getDateDifference(issuingDate,fromDate); + + + if (toDate != null) { + this.toParkingDate = DateTimeUtils.getDateDifference(fromDate,toDate); + + } + + } + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/PassData.java b/src/org/uic/barcode/ticket/api/asn/omv2/PassData.java new file mode 100644 index 0000000..b3b02e7 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/PassData.java @@ -0,0 +1,590 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; + +@Sequence +@HasExtensionMarker +public class PassData extends Object { + public PassData() { + } + + @FieldOrder(order = 0) + @Asn1Optional public Asn1BigInteger referenceNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String referenceIA5; + + @FieldOrder(order = 2) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long productOwnerNum; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productOwnerIA5; + + @FieldOrder(order = 4) + @IntRange(minValue=0,maxValue=65535) + @Asn1Optional public Long productIdNum; + + @FieldOrder(order = 5) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productIdIA5; + + @FieldOrder(order = 6) + @IntRange(minValue=1,maxValue=250) + @Asn1Optional public Long passType; + + @FieldOrder(order = 7) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String passDescription; + + @FieldOrder(order = 8) + @Asn1Default (value="second") + @Asn1Optional public TravelClassType classCode; + + @FieldOrder(order = 9) + @IntRange(minValue=-1,maxValue=700) + @Asn1Optional public Long validFromDay; + + @FieldOrder(order = 10) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long validFromTime; + + @FieldOrder(order = 11) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validFromUTCOffset; + + @FieldOrder(order = 12) + @IntRange(minValue=0,maxValue=370) + @Asn1Optional public Long validUntilDay; + + @FieldOrder(order = 13) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long validUntilTime; + + @FieldOrder(order = 14) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validUntilUTCOffset; + + @FieldOrder(order = 15) + @Asn1Optional public ValidityPeriodDetailType validityPeriodDetails; + + @FieldOrder(order = 16) + @IntRange(minValue=0,maxValue=370) + @Asn1Optional public Long numberOfValidityDays; + + @FieldOrder(order = 17) + @IntRange(minValue=1,maxValue=250) + @Asn1Optional public Long numberOfPossibleTrips; + + @FieldOrder(order = 18) + @IntRange(minValue=1,maxValue=250) + @Asn1Optional public Long numberOfDaysOfTravel; + + @FieldOrder(order = 19) + @Asn1Optional public SequenceOfActivatedDays activatedDay; + + @FieldOrder(order = 20) + @Asn1Optional public SequenceOfCountries countries; + + @FieldOrder(order = 21) + @Asn1Optional public SequenceOfCarrierNum includedCarriersNum; + + @FieldOrder(order = 22) + @Asn1Optional public SequenceOfStringIA5 includedCarriersIA5; + + @FieldOrder(order = 23) + @Asn1Optional public SequenceOfCarrierNum excludedCarriersNum; + + @FieldOrder(order = 24) + @Asn1Optional public SequenceOfStringIA5 excludedCarriersIA5; + + @FieldOrder(order = 25) + @Asn1Optional public SequenceOfServiceBrands includedServiceBrands; + + @FieldOrder(order = 26) + @Asn1Optional public SequenceOfServiceBrands excludedServiceBrands; + + @FieldOrder(order = 27) + @Asn1Optional public SequenceOfRegionalValidityType validRegion; + + @FieldOrder(order = 28) + @Asn1Optional public SequenceOfTariffType tariffs; + + @FieldOrder(order = 29) + @Asn1Optional Asn1BigInteger price; + + @FieldOrder(order = 30) + @Asn1Optional SequenceOfVatDetail vatDetails; + + @FieldOrder(order = 31) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String infoText; + + @FieldOrder(order = 32) + @Asn1Optional public ExtensionData extension; + + + + + + public Asn1BigInteger getReferenceNum() { + + return this.referenceNum; + } + + public String getReferenceIA5() { + + return this.referenceIA5; + } + + 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 getPassType() { + + return this.passType; + } + + public String getPassDescription() { + + return this.passDescription; + } + + public TravelClassType getClassCode() { + + if (classCode == null){ + return TravelClassType.second; + } + + return this.classCode; + } + + public Long getValidFromDay() { + + return this.validFromDay; + } + + public Long getValidFromTime() { + + return this.validFromTime; + } + + public Long getValidUntilDay() { + + return this.validUntilDay; + } + + public Long getValidUntilTime() { + + return this.validUntilTime; + } + + public ValidityPeriodDetailType getValidityPeriodDetails() { + + return this.validityPeriodDetails; + } + + public Long getNumberOfValidityDays() { + + return this.numberOfValidityDays; + } + + public Long getNumberOfPossibleTrips() { + + return this.numberOfPossibleTrips; + } + + public Long getNumberOfDaysOfTravel() { + + return this.numberOfDaysOfTravel; + } + + public List getActivatedDay() { + + return this.activatedDay; + } + + public List getCountries() { + + return this.countries; + } + + public List getIncludedCarriersNum() { + + return this.includedCarriersNum; + } + + public List getIncludedCarriersIA5() { + + return this.includedCarriersIA5; + } + + public List getExcludedCarriersNum() { + + return this.excludedCarriersNum; + } + + public SequenceOfStringIA5 getExcludedCarriersIA5() { + + return this.excludedCarriersIA5; + } + + public SequenceOfServiceBrands getIncludedServiceBrands() { + + return this.includedServiceBrands; + } + + public SequenceOfServiceBrands getExcludedServiceBrands() { + + return this.excludedServiceBrands; + } + + public List getValidRegion() { + + return this.validRegion; + } + + public List getTariffs() { + + return this.tariffs; + } + + public String getInfoText() { + + return this.infoText; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public void setReferenceNum(Asn1BigInteger referenceNum) { + + this.referenceNum = referenceNum; + } + + public void setReferenceIA5(String referenceIA5) { + + this.referenceIA5 = referenceIA5; + } + + 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 setPassType(Long passType) { + + this.passType = passType; + } + + public void setPassDescription(String passDescription) { + + this.passDescription = passDescription; + } + + public void setClassCode(TravelClassType classCode) { + + this.classCode = classCode; + } + + public void setValidFromDay(Long validFromDay) { + + this.validFromDay = validFromDay; + } + + public void setValidFromTime(Long validFromTime) { + + this.validFromTime = validFromTime; + } + + public void setValidUntilDay(Long validUntilDay) { + + this.validUntilDay = validUntilDay; + } + + public void setValidUntilTime(Long validUntilTime) { + + this.validUntilTime = validUntilTime; + } + + public void setValidityPeriodDetails(ValidityPeriodDetailType validityPeriodDetails) { + + this.validityPeriodDetails = validityPeriodDetails; + } + + public void setNumberOfValidityDays(Long numberOfValidityDays) { + + this.numberOfValidityDays = numberOfValidityDays; + } + + public void setNumberOfPossibleTrips(Long numberOfPossibleTrips) { + + this.numberOfPossibleTrips = numberOfPossibleTrips; + } + + public void setNumberOfDaysOfTravel(Long numberOfDaysOfTravel) { + + this.numberOfDaysOfTravel = numberOfDaysOfTravel; + } + + public void setActivatedDay(SequenceOfActivatedDays activatedDay) { + + this.activatedDay = activatedDay; + } + + public void setCountries(SequenceOfCountries countries) { + + this.countries = countries; + } + + public void setIncludedCarriersNum(SequenceOfCarrierNum includedCarriersNum) { + + this.includedCarriersNum = includedCarriersNum; + } + + public void setIncludedCarriersIA5(SequenceOfStringIA5 includedCarriersIA5) { + + this.includedCarriersIA5 = includedCarriersIA5; + } + + public void setExcludedCarriersNum(SequenceOfCarrierNum excludedCarriersNum) { + + this.excludedCarriersNum = excludedCarriersNum; + } + + public void setExcludedCarriersIA5(SequenceOfStringIA5 excludedCarriersIA5) { + + this.excludedCarriersIA5 = excludedCarriersIA5; + } + + public void setIncludedServiceBrands(SequenceOfServiceBrands includedServiceBrands) { + + this.includedServiceBrands = includedServiceBrands; + } + + public void setExcludedServiceBrands(SequenceOfServiceBrands excludedServiceBrands) { + + this.excludedServiceBrands = excludedServiceBrands; + } + + public void setValidRegion(SequenceOfRegionalValidityType validRegion) { + + this.validRegion = validRegion; + } + + public void setTariffs(SequenceOfTariffType tariffs) { + + this.tariffs = tariffs; + } + + 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 setValidityDates (Date fromDate, Date untilDate, Date issuingDate){ + + if (issuingDate == null || fromDate == null) return; + + this.validFromDay = DateTimeUtils.getDateDifference(issuingDate,fromDate); + this.validFromTime = DateTimeUtils.getTime(fromDate); + + if (untilDate != null){ + this.validUntilDay = DateTimeUtils.getDateDifference(fromDate, untilDate); + this.validUntilTime = DateTimeUtils.getTime(untilDate); + } + + } + + public Date getValidFromDate(Date issuingDate){ + + return DateTimeUtils.getDate(issuingDate, this.validFromDay, this.validFromTime); + + } + + public Date getValidUntilDate(Date issuingDate){ + + if (issuingDate == null) return null; + + if (this.validFromDay == null) { + this.validFromDay = 0L; + } + + if (this.validUntilDay == null) { + return null; + } + + + return DateTimeUtils.getDate(issuingDate, this.validFromDay + this.validUntilDay, this.validUntilTime); + + } + + public void setActivatedDays(Collection dates, Date issuingDate){ + + if (this.activatedDay != null) { + this.activatedDay.clear(); + } else { + this.activatedDay= new SequenceOfActivatedDays(); + } + + if (dates != null && !dates.isEmpty()) { + + for (Date day : dates) { + this.addActivatedDay(issuingDate, day); + } + + } + + } + + public void addActivatedDay(Date issuingDate, Date day){ + + Long dayDiff = DateTimeUtils.getDateDifference(issuingDate, day); + + if (this.activatedDay == null) { + this.activatedDay = new SequenceOfActivatedDays(); + } + + if (dayDiff != null) { + this.activatedDay.add(dayDiff); + } + + } + + public Collection getActivatedDays(Date issuingDate) { + + if (this.activatedDay == null) return null; + + ArrayList dates = new ArrayList(); + + for (Long diff: this.getActivatedDay()) { + + Date day = DateTimeUtils.getDate(issuingDate, diff, null); + + if (day != null) { + dates.add(day); + } + + } + + return dates; + + } + + public Long getValidFromUTCOffset() { + return validFromUTCOffset; + } + + public void setValidFromUTCOffset(Long validFromUTCOffset) { + this.validFromUTCOffset = validFromUTCOffset; + } + + public Long getValidUntilUTCOffset() { + return validUntilUTCOffset; + } + + public void setValidUntilUTCOffset(Long validUntilUTCOffset) { + this.validUntilUTCOffset = validUntilUTCOffset; + } + + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/PassengerType.java b/src/org/uic/barcode/ticket/api/asn/omv2/PassengerType.java new file mode 100644 index 0000000..daaba40 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/PassengerType.java @@ -0,0 +1,46 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; + +@HasExtensionMarker +public enum PassengerType { + adult("adult"), + senior("senior"), + child("child"), + youth("youth"), + dog("dog"), + bicycle("bicycle"), + freeAddonPassenger("freeAddonPassenger"), + freeAddonChild("freeAddonChild"); + + public String text; + + PassengerType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } + +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/PlacesType.java b/src/org/uic/barcode/ticket/api/asn/omv2/PlacesType.java new file mode 100644 index 0000000..1204ea6 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/PlacesType.java @@ -0,0 +1,131 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; + +@Sequence +public class PlacesType extends Object { + public PlacesType() { + } + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String coach; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String placeString; + + @FieldOrder(order = 2) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String placeDescription; + + @FieldOrder(order = 3) + @Asn1Optional public SequenceOfStringIA5 placeIA5; + + @FieldOrder(order = 4) + @Asn1Optional public SequenceOfPlaceNum placeNum; + + + + public String getCoach() { + + return this.coach; + } + + public String getPlaceString() { + + return this.placeString; + } + + public String getPlaceDescription() { + + return this.placeDescription; + } + + public SequenceOfStringIA5 getPlaceIA5() { + + return this.placeIA5; + } + + public SequenceOfPlaceNum getPlaceNum() { + + return this.placeNum; + } + + public void setCoach(String coach) { + + this.coach = coach; + } + + public void setPlaceString(String placeString) { + + this.placeString = placeString; + } + + public void setPlaceDescription(String placeDescription) { + + this.placeDescription = placeDescription; + } + + public void setPlaceIA5(SequenceOfStringIA5 placeIA5) { + + this.placeIA5 = placeIA5; + } + + public void setPlaceNum(SequenceOfPlaceNum placeNum) { + + this.placeNum = placeNum; + } + + @Override + public boolean equals(Object anObject) { + if (this == anObject) return true; + if ((anObject == null) || (anObject.getClass() != this.getClass())) return false; + + PlacesType comparator = (PlacesType)anObject; + + if ((this.getCoach() != comparator.getCoach()) && ((this.getCoach() == null) || (! this.getCoach().equals(comparator.getCoach())))) return false; + if ((this.getPlaceString() != comparator.getPlaceString()) && ((this.getPlaceString() == null) || (! this.getPlaceString().equals(comparator.getPlaceString())))) return false; + if ((this.getPlaceDescription() != comparator.getPlaceDescription()) && ((this.getPlaceDescription() == null) || (! this.getPlaceDescription().equals(comparator.getPlaceDescription())))) return false; + if ((this.getPlaceIA5() != comparator.getPlaceIA5()) && ((this.getPlaceIA5() == null) || (! this.getPlaceIA5().equals(comparator.getPlaceIA5())))) return false; + if ((this.getPlaceNum() != comparator.getPlaceNum()) && ((this.getPlaceNum() == null) || (! this.getPlaceNum().equals(comparator.getPlaceNum())))) return false; + return true; + } + + @Override + public int hashCode() { + int hash = 5477; + + hash = 3547 * hash + (null == this.getCoach() ? 0 : this.getCoach().hashCode()); + hash = 7321 * hash + (null == this.getPlaceString() ? 0 : this.getPlaceString().hashCode()); + hash = 2083 * hash + (null == this.getPlaceDescription() ? 0 : this.getPlaceDescription().hashCode()); + hash = 881 * hash + (null == this.getPlaceIA5() ? 0 : this.getPlaceIA5().hashCode()); + hash = 6679 * hash + (null == this.getPlaceNum() ? 0 : this.getPlaceNum().hashCode()); + return hash; + } + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/PolygoneType.java b/src/org/uic/barcode/ticket/api/asn/omv2/PolygoneType.java new file mode 100644 index 0000000..a936ee6 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/PolygoneType.java @@ -0,0 +1,58 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +public class PolygoneType extends Object { + public PolygoneType() { + } + + @FieldOrder(order = 0) + public GeoCoordinateType firstEdge; + + @FieldOrder(order = 1) + public SequenceOfDeltaCoordinates edges; + + + public GeoCoordinateType getFirstEdge() { + + return this.firstEdge; + } + + public SequenceOfDeltaCoordinates getEdges() { + + return this.edges; + } + + public void setFirstEdge(GeoCoordinateType firstEdge) { + + this.firstEdge = firstEdge; + } + + public void setEdges(SequenceOfDeltaCoordinates edges) { + + this.edges = edges; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/PriceTypeType.java b/src/org/uic/barcode/ticket/api/asn/omv2/PriceTypeType.java new file mode 100644 index 0000000..4e849bc --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/PriceTypeType.java @@ -0,0 +1,39 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +public enum PriceTypeType { + noPrice("noPrice"), + reservationFee("reservationFee"), + supplement("supplement"), + travelPrice("travelPrice"); + + + public String text; + + PriceTypeType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/RegionalValidityType.java b/src/org/uic/barcode/ticket/api/asn/omv2/RegionalValidityType.java new file mode 100644 index 0000000..fbae3b1 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/RegionalValidityType.java @@ -0,0 +1,100 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Choice; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; + + +@Choice +@HasExtensionMarker +public class RegionalValidityType extends Object { + public RegionalValidityType() { + } + + @FieldOrder(order = 0) + public TrainLinkType trainLink; + + @FieldOrder(order = 1) + public ViaStationType viaStations; + + @FieldOrder(order = 2) + public ZoneType zones; + + @FieldOrder(order = 3) + public LineType lines; + + @FieldOrder(order = 4) + public PolygoneType polygone; + + + public TrainLinkType getTrainLink() { + + return this.trainLink; + } + + public ViaStationType getViaStations() { + + return this.viaStations; + } + + public ZoneType getZones() { + + return this.zones; + } + + public LineType getLines() { + + return this.lines; + } + + public PolygoneType getPolygone() { + + return this.polygone; + } + + public void setTrainLink(TrainLinkType trainLink) { + + this.trainLink = trainLink; + } + + public void setViaStations(ViaStationType viaStations) { + + this.viaStations = viaStations; + } + + public void setZones(ZoneType zones) { + + this.zones = zones; + } + + public void setLines(LineType lines) { + + this.lines = lines; + } + + public void setPolygone(PolygoneType polygone) { + + this.polygone = polygone; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/RegisteredLuggageType.java b/src/org/uic/barcode/ticket/api/asn/omv2/RegisteredLuggageType.java new file mode 100644 index 0000000..a9d053a --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/RegisteredLuggageType.java @@ -0,0 +1,80 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + + +@Sequence +@HasExtensionMarker +public class RegisteredLuggageType extends Object { + public RegisteredLuggageType() { + } + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String registrationId; + + @FieldOrder(order = 1) + @IntRange(minValue=1,maxValue=99) + @Asn1Optional public Long maxWeight; + + @FieldOrder(order = 2) + @IntRange(minValue=1,maxValue=300) + @Asn1Optional public Long maxSize; + + public String getRegistrationId() { + + return this.registrationId; + } + + public Long getMaxWeight() { + + return this.maxWeight; + } + + public Long getMaxSize() { + + return this.maxSize; + } + + public void setRegistrationId(String registrationId) { + + this.registrationId = registrationId; + } + + public void setMaxWeight(Long maxWeight) { + + this.maxWeight = maxWeight; + } + + public void setMaxSize(Long maxSize) { + + this.maxSize = maxSize; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/ReservationData.java b/src/org/uic/barcode/ticket/api/asn/omv2/ReservationData.java new file mode 100644 index 0000000..a474e7d --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/ReservationData.java @@ -0,0 +1,710 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Date; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypes.SizeRange; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; + +@Sequence +@HasExtensionMarker +public class ReservationData extends Object { + public ReservationData() { + } + + @FieldOrder(order = 0) + @Asn1Optional public Asn1BigInteger trainNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String trainIA5; + + @FieldOrder(order = 2) + @Asn1Default(value="0") + @IntRange(minValue=-1,maxValue=370) + @Asn1Optional public Long departureDate; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String referenceIA5; + + @FieldOrder(order = 4) + @Asn1Optional public Asn1BigInteger referenceNum; + + @FieldOrder(order = 5) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long productOwnerNum; + + @FieldOrder(order = 6) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productOwnerIA5; + + @FieldOrder(order = 7) + @IntRange(minValue=0,maxValue=65535) + @Asn1Optional public Long productIdNum; + + @FieldOrder(order = 8) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productIdIA5; + + @FieldOrder(order = 9) + @IntRange(minValue=0,maxValue=32000) + @Asn1Optional public Long serviceBrand; + + @FieldOrder(order = 10) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String serviceBrandAbrUTF8; + + @FieldOrder(order = 11) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String serviceBrandNameUTF8; + + @FieldOrder(order = 12) + @Asn1Default("seat") + @Asn1Optional public ServiceType service; + + @FieldOrder(order = 13) + @Asn1Default("stationUICReservation") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 14) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long fromStationNum; + + @FieldOrder(order = 15) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String fromStationIA5; + + @FieldOrder(order = 16) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long toStationNum; + + @FieldOrder(order = 17) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String toStationIA5; + + @FieldOrder(order = 18) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String fromStationNameUTF8; + + @FieldOrder(order = 19) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String toStationNameUTF8; + + @FieldOrder(order = 20) + @IntRange(minValue=0,maxValue=1440) + public Long departureTime; + + @FieldOrder(order = 21) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long departureUTCOffset; + + @FieldOrder(order = 22) + @IntRange(minValue=-1,maxValue=20) + @Asn1Default(value="0") + @Asn1Optional public Long arrivalDate; + + @FieldOrder(order = 23) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long arrivalTime; + + @FieldOrder(order = 24) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long arrivalUTCOffset; + + @FieldOrder(order = 25) + @Asn1Optional public SequenceOfCarrierNum carrierNum; + + @FieldOrder(order = 26) + @Asn1Optional public SequenceOfStringIA5 carrierIA5; + + @FieldOrder(order = 27) + @Asn1Default("second") + @Asn1Optional public TravelClassType classCode; + + @FieldOrder(order = 28) + @SizeRange(minValue = 1, maxValue = 2) + @Asn1Optional public String serviceLevel; + + @FieldOrder(order = 29) + @Asn1Optional public PlacesType places; + + @FieldOrder(order = 30) + @Asn1Optional public PlacesType additionalPlaces; + + @FieldOrder(order = 31) + @Asn1Optional public PlacesType bicyclePlaces; + + @FieldOrder(order = 32) + @Asn1Optional public CompartmentDetailsType compartmentDetails; + + @FieldOrder(order = 33) + @IntRange(minValue=0,maxValue=200) + @Asn1Default(value="0") + @Asn1Optional public Long numberOfOverbooked; + + @FieldOrder(order = 34) + @Asn1Optional public SequenceOfBerthDetailData berth; + + @FieldOrder(order = 35) + @Asn1Optional public SequenceOfTariffType tariff; + + @FieldOrder(order = 36) + @Asn1Default("travelPrice") + @Asn1Optional public PriceTypeType priceType; + + @FieldOrder(order = 37) + @Asn1Optional Asn1BigInteger price; + + @FieldOrder(order = 38) + @Asn1Optional SequenceOfVatDetail vatDetails; + + @FieldOrder(order = 39) + @IntRange(minValue=0,maxValue=9) + @Asn1Default("0") + @Asn1Optional public Long typeOfSupplement; + + @FieldOrder(order = 40) + @IntRange(minValue=0,maxValue=200) + @Asn1Default("0") + @Asn1Optional public Long numberOfSupplements; + + @FieldOrder(order = 41) + @Asn1Optional public LuggageRestrictionType luggage; + + @FieldOrder(order = 42) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String infoText; + + @FieldOrder(order = 43) + @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 getCarrierNum() { + + return this.carrierNum; + } + + public List 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 getBerth() { + + return this.berth; + } + + public List 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 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; + } + + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/ReturnRouteDescriptionType.java b/src/org/uic/barcode/ticket/api/asn/omv2/ReturnRouteDescriptionType.java new file mode 100644 index 0000000..5334b27 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/ReturnRouteDescriptionType.java @@ -0,0 +1,150 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +@HasExtensionMarker +public class ReturnRouteDescriptionType extends Object { + public ReturnRouteDescriptionType() { + } + + @FieldOrder(order = 0) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long fromStationNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String fromStationIA5; + + @FieldOrder(order = 2) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long toStationNum; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String toStationIA5; + + @FieldOrder(order = 4) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String fromStationNameUTF8; + + @FieldOrder(order = 5) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String toStationNameUTF8; + + @FieldOrder(order = 6) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String validReturnRegionDesc; + + @FieldOrder(order = 7) + @Asn1Optional public SequenceOfRegionalValidityType validReturnRegion; + + 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 String getValidReturnRegionDesc() { + + return this.validReturnRegionDesc; + } + + public List getValidReturnRegion() { + + return this.validReturnRegion; + } + + 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 setValidReturnRegionDesc(String validReturnRegionDesc) { + + this.validReturnRegionDesc = validReturnRegionDesc; + } + + public void setValidReturnRegion(SequenceOfRegionalValidityType validReturnRegion) { + + this.validReturnRegion = validReturnRegion; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/RoofRackType.java b/src/org/uic/barcode/ticket/api/asn/omv2/RoofRackType.java new file mode 100644 index 0000000..c05e917 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/RoofRackType.java @@ -0,0 +1,46 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; + +@HasExtensionMarker +public enum RoofRackType { + norack("norack"), + roofRailing("roofRailing"), + luggageRack("luggageRack"), + skiRack("skiRack"), + boxRack("boxRack"), + rackWithOneBox("rackWithOneBox"), + rackWithTwoBoxes("rackWithTwoBoxes"), + bicycleRack("bicycleRack"), + otherRack("otherRack"); + + public String text; + + RoofRackType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/RouteSectionType.java b/src/org/uic/barcode/ticket/api/asn/omv2/RouteSectionType.java new file mode 100644 index 0000000..e0f9c46 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/RouteSectionType.java @@ -0,0 +1,136 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; + +public class RouteSectionType extends Object { + public RouteSectionType() { + } + + @FieldOrder(order = 0) + @Asn1Default("stationUIC") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 1) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long fromStationNum; + + @FieldOrder(order = 2) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String fromStationIA5; + + @FieldOrder(order = 3) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long toStationNum; + + @FieldOrder(order = 4) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String toStationIA5; + + @FieldOrder(order = 5) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String fromStationNameUTF8; + + @FieldOrder(order = 6) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String toStationNameUTF8; + + public CodeTableType getStationCodeTable() { + + if (stationCodeTable == null) { + return CodeTableType.stationUIC; + } + + 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 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; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfActivatedDays.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfActivatedDays.java new file mode 100644 index 0000000..776c774 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfActivatedDays.java @@ -0,0 +1,26 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; +import org.uic.barcode.asn1.datatypes.IntRange; + +@IntRange(minValue=0,maxValue=370) +public class SequenceOfActivatedDays extends Asn1SequenceOf { + public SequenceOfActivatedDays() { super(); } + public SequenceOfActivatedDays(Collection coll) { super(coll); } + + public SequenceOfActivatedDays(List numbers) { + super(); + for (Long number: numbers){ + this.add(new Long(number)); + } + } + + public static SequenceOfActivatedDays getSequence(List numList) { + if (numList == null || numList.isEmpty()) return null; + return new SequenceOfActivatedDays(numList); + } + +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfBerthDetailData.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfBerthDetailData.java new file mode 100644 index 0000000..38482f4 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfBerthDetailData.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfBerthDetailData extends Asn1SequenceOf { + public SequenceOfBerthDetailData() { super(); } + public SequenceOfBerthDetailData(Collection coll) { super(coll); } +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCardReferenceType.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCardReferenceType.java new file mode 100644 index 0000000..4e602bb --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCardReferenceType.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfCardReferenceType extends Asn1SequenceOf { + public SequenceOfCardReferenceType() { super(); } + public SequenceOfCardReferenceType(Collection coll) { super(coll); } +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCarrierIA5.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCarrierIA5.java new file mode 100644 index 0000000..c06d78d --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCarrierIA5.java @@ -0,0 +1,13 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.RestrictedString; + +@RestrictedString(CharacterRestriction.IA5String) +public class SequenceOfCarrierIA5 extends Asn1SequenceOf { + public SequenceOfCarrierIA5() { super(); } + public SequenceOfCarrierIA5(Collection coll) { super(coll); } +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCarrierNum.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCarrierNum.java new file mode 100644 index 0000000..53417c2 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCarrierNum.java @@ -0,0 +1,28 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; +import org.uic.barcode.asn1.datatypes.IntRange; + +@IntRange(minValue=1,maxValue=32000) +public class SequenceOfCarrierNum extends Asn1SequenceOf { + public SequenceOfCarrierNum() { super(); } + public SequenceOfCarrierNum(Collection coll) { super(coll); } + + + public SequenceOfCarrierNum(List numbers) { + super(); + for (Long number: numbers){ + this.add(new Long(number)); + } + } + public static SequenceOfCarrierNum getSequence(List numList) { + if (numList == null || numList.isEmpty()) return null; + return new SequenceOfCarrierNum(numList); + } + + + +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCountries.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCountries.java new file mode 100644 index 0000000..2dca27a --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCountries.java @@ -0,0 +1,27 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; +import org.uic.barcode.asn1.datatypes.IntRange; + +@IntRange(minValue=1,maxValue=250) +public class SequenceOfCountries extends Asn1SequenceOf { + public SequenceOfCountries() { super(); } + public SequenceOfCountries(Collection coll) { super(coll); } + + + public SequenceOfCountries(List numbers) { + super(); + for (Long number: numbers){ + this.add(new Long(number)); + } + } + + public static SequenceOfCountries getSequence(List numList) { + if (numList == null || numList.isEmpty()) return null; + return new SequenceOfCountries(numList); + } + +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCustomerStatusType.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCustomerStatusType.java new file mode 100644 index 0000000..e660e0c --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfCustomerStatusType.java @@ -0,0 +1,11 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfCustomerStatusType extends Asn1SequenceOf { + public SequenceOfCustomerStatusType() { super(); } + public SequenceOfCustomerStatusType(Collection coll) { super(coll); } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfDeltaCoordinates.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfDeltaCoordinates.java new file mode 100644 index 0000000..66ff4b0 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfDeltaCoordinates.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfDeltaCoordinates extends Asn1SequenceOf { + public SequenceOfDeltaCoordinates() { super(); } + public SequenceOfDeltaCoordinates(Collection coll) { super(coll); } +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfDocumentData.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfDocumentData.java new file mode 100644 index 0000000..57b3ba7 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfDocumentData.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfDocumentData extends Asn1SequenceOf { + public SequenceOfDocumentData() { super(); } + public SequenceOfDocumentData(Collection coll) { super(coll); } +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfExtensionData.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfExtensionData.java new file mode 100644 index 0000000..6def741 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfExtensionData.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfExtensionData extends Asn1SequenceOf { + public SequenceOfExtensionData() { super(); } + public SequenceOfExtensionData(Collection coll) { super(coll); } +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfIncludedOpenTicketType.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfIncludedOpenTicketType.java new file mode 100644 index 0000000..ac0efff --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfIncludedOpenTicketType.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfIncludedOpenTicketType extends Asn1SequenceOf { + public SequenceOfIncludedOpenTicketType() { super(); } + public SequenceOfIncludedOpenTicketType(Collection coll) { super(coll); } +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfPlaceNum.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfPlaceNum.java new file mode 100644 index 0000000..3cc6471 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfPlaceNum.java @@ -0,0 +1,28 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; +import org.uic.barcode.asn1.datatypes.IntRange; + +@IntRange(minValue=1,maxValue=254) +public class SequenceOfPlaceNum extends Asn1SequenceOf { + public SequenceOfPlaceNum() { super(); } + public SequenceOfPlaceNum(Collection coll) { super(coll); } + + + + public SequenceOfPlaceNum(List numbers) { + super(); + for (Long number: numbers){ + this.add(new Long(number)); + } + } + + public static SequenceOfPlaceNum getSequence(List numList) { + if (numList == null || numList.isEmpty()) return null; + return new SequenceOfPlaceNum(numList); + } + +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfRegionalValidityType.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfRegionalValidityType.java new file mode 100644 index 0000000..e261eb8 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfRegionalValidityType.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfRegionalValidityType extends Asn1SequenceOf { + public SequenceOfRegionalValidityType() { super(); } + public SequenceOfRegionalValidityType(Collection coll) { super(coll); } +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfRegisteredLuggageType.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfRegisteredLuggageType.java new file mode 100644 index 0000000..e8709ce --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfRegisteredLuggageType.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfRegisteredLuggageType extends Asn1SequenceOf { + public SequenceOfRegisteredLuggageType() { super(); } + public SequenceOfRegisteredLuggageType(Collection coll) { super(coll); } +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfServiceBrands.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfServiceBrands.java new file mode 100644 index 0000000..4eb829b --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfServiceBrands.java @@ -0,0 +1,26 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; +import org.uic.barcode.asn1.datatypes.IntRange; + +@IntRange(minValue=0,maxValue=32000) +public class SequenceOfServiceBrands extends Asn1SequenceOf { + public SequenceOfServiceBrands() { super(); } + public SequenceOfServiceBrands(Collection coll) { super(coll); } + + + public SequenceOfServiceBrands(List numbers) { + super(); + for (Long number: numbers){ + this.add(new Long(number)); + } + } + + public static SequenceOfServiceBrands getSequence(List numList) { + if (numList == null || numList.isEmpty()) return null; + return new SequenceOfServiceBrands(numList); + } +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTariffType.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTariffType.java new file mode 100644 index 0000000..5c7b773 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTariffType.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfTariffType extends Asn1SequenceOf { + public SequenceOfTariffType() { super(); } + public SequenceOfTariffType(Collection coll) { super(coll); } +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTicketLinkType.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTicketLinkType.java new file mode 100644 index 0000000..52005b1 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTicketLinkType.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfTicketLinkType extends Asn1SequenceOf { + public SequenceOfTicketLinkType() { super(); } + public SequenceOfTicketLinkType(Collection coll) { super(coll); } +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTransportTypes.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTransportTypes.java new file mode 100644 index 0000000..b8e2b64 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTransportTypes.java @@ -0,0 +1,26 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; +import org.uic.barcode.asn1.datatypes.IntRange; + +@IntRange(minValue=0,maxValue=31) +public class SequenceOfTransportTypes extends Asn1SequenceOf { + public SequenceOfTransportTypes() { super(); } + public SequenceOfTransportTypes(Collection coll) { super(coll); } + + + public SequenceOfTransportTypes(List numbers) { + super(); + for (Long number: numbers){ + this.add(new Long(number)); + } + } + + public static SequenceOfTransportTypes getSequence(List numList) { + if (numList == null || numList.isEmpty()) return null; + return new SequenceOfTransportTypes(numList); + } +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTravelerId.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTravelerId.java new file mode 100644 index 0000000..eb9c3e2 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTravelerId.java @@ -0,0 +1,26 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; +import org.uic.barcode.asn1.datatypes.IntRange; + +@IntRange(minValue=1,maxValue=254) +public class SequenceOfTravelerId extends Asn1SequenceOf { + public SequenceOfTravelerId() { super(); } + public SequenceOfTravelerId(Collection coll) { super(coll); } + + public SequenceOfTravelerId(List numbers) { + super(); + for (Long number: numbers){ + this.add(new Long(number)); + } + } + + public static SequenceOfTravelerId getSequence(List numList) { + if (numList == null || numList.isEmpty()) return null; + return new SequenceOfTravelerId(numList); + } + +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTravelerType.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTravelerType.java new file mode 100644 index 0000000..e1fd312 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfTravelerType.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfTravelerType extends Asn1SequenceOf { + public SequenceOfTravelerType() { super(); } + public SequenceOfTravelerType(Collection coll) { super(coll); } +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfVatDetail.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfVatDetail.java new file mode 100644 index 0000000..3aae8e9 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfVatDetail.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfVatDetail extends Asn1SequenceOf { + public SequenceOfVatDetail() { super(); } + public SequenceOfVatDetail(Collection coll) { super(coll); } +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfViaStationType.java b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfViaStationType.java new file mode 100644 index 0000000..b5bb0aa --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SequenceOfViaStationType.java @@ -0,0 +1,10 @@ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; + +public class SequenceOfViaStationType extends Asn1SequenceOf { + public SequenceOfViaStationType() { super(); } + public SequenceOfViaStationType(Collection coll) { super(coll); } +} \ No newline at end of file diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/SeriesDetailType.java b/src/org/uic/barcode/ticket/api/asn/omv2/SeriesDetailType.java new file mode 100644 index 0000000..d7477d1 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/SeriesDetailType.java @@ -0,0 +1,75 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +public class SeriesDetailType extends Object { + public SeriesDetailType() { + } + + @FieldOrder(order = 0) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long supplyingCarrier; + + @FieldOrder(order = 1) + @IntRange(minValue=1,maxValue=99) + @Asn1Optional public Long offerIdentification; + + @FieldOrder(order = 2) + @Asn1Optional public Asn1BigInteger series; + + + public Long getSupplyingCarrier() { + + return this.supplyingCarrier; + } + + public Long getOfferIdentification() { + + return this.offerIdentification; + } + + public Long getSeries() { + + return Asn1BigInteger.toLong(this.series); + } + + public void setSupplyingCarrier(Long supplyingCarrier) { + + this.supplyingCarrier = supplyingCarrier; + } + + public void setOfferIdentification(Long offerIdentification) { + + this.offerIdentification = offerIdentification; + } + + public void setSeries(Long series) { + + this.series = Asn1BigInteger.toAsn1(series); + } + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/ServiceType.java b/src/org/uic/barcode/ticket/api/asn/omv2/ServiceType.java new file mode 100644 index 0000000..b13c094 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/ServiceType.java @@ -0,0 +1,38 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +public enum ServiceType { + seat("seat"), + couchette("couchette"), + berth("berth"), + carcarriage("carcarriage"); + + public String text; + + ServiceType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/StationPassageData.java b/src/org/uic/barcode/ticket/api/asn/omv2/StationPassageData.java new file mode 100644 index 0000000..6c6d36d --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/StationPassageData.java @@ -0,0 +1,386 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Date; +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfUnrestrictedLong; + +@Sequence +@HasExtensionMarker +public class StationPassageData extends Object { + public StationPassageData() { + } + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String referenceIA5; + + @FieldOrder(order = 1) + @Asn1Optional public Asn1BigInteger referenceNum; + + @FieldOrder(order = 2) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long productOwnerNum; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productOwnerIA5; + + @FieldOrder(order = 4) + @IntRange(minValue=0,maxValue=65535) + @Asn1Optional public Long productIdNum; + + @FieldOrder(order = 5) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productIdIA5; + + @FieldOrder(order = 6) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String productName; + + @FieldOrder(order = 7) + @Asn1Default("stationUIC") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 8) + @Asn1Optional public SequenceOfUnrestrictedLong stationNum; + + @FieldOrder(order = 9) + @Asn1Optional public SequenceOfStringIA5 stationIA5; + + @FieldOrder(order = 10) + @Asn1Optional public SequenceOfStringUTF8 stationNameUTF8; + + @FieldOrder(order = 11) + @Asn1Optional public SequenceOfUnrestrictedLong areaCodeNum; + + @FieldOrder(order = 12) + @Asn1Optional public SequenceOfStringIA5 areaCodeIA5; + + @FieldOrder(order = 13) + @Asn1Optional public SequenceOfStringUTF8 areaNameUTF8; + + @FieldOrder(order = 14) + @IntRange(minValue=-1,maxValue=700) + public Long validFromDay; + + @FieldOrder(order = 15) + @IntRange(minValue=0,maxValue=1440) + @Asn1Optional public Long validFromTime; + + @FieldOrder(order = 16) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validFromUTCOffset; + + @FieldOrder(order = 17) + @Asn1Default(value="0") + @IntRange(minValue=0,maxValue=370) + @Asn1Optional public Long validUntilDay; + + @FieldOrder(order = 18) + @IntRange(minValue=0,maxValue=1440) + @Asn1Optional public Long validUntilTime; + + @FieldOrder(order = 19) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validUntilUTCOffset; + + @FieldOrder(order = 20) + @Asn1Optional public Asn1BigInteger numberOfDaysValid; + + @FieldOrder(order = 21) + @Asn1Optional public ExtensionData extension; + + + public String getReferenceIA5() { + + return this.referenceIA5; + } + + public Asn1BigInteger getReferenceNum() { + + return 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 String getProductName() { + + return this.productName; + } + + public CodeTableType getStationCodeTable() { + + if (stationCodeTable == null) { + return CodeTableType.stationUIC; + } + + return this.stationCodeTable; + } + + public SequenceOfUnrestrictedLong getStationNum() { + + return this.stationNum; + } + + public List getStationIA5() { + + return this.stationIA5; + } + + public SequenceOfStringUTF8 getStationNameUTF8() { + + return this.stationNameUTF8; + } + + public SequenceOfUnrestrictedLong getAreaCodeNum() { + + return this.areaCodeNum; + } + + public List getAreaCodeIA5() { + + return this.areaCodeIA5; + } + + public List getAreaNameUTF8() { + + return this.areaNameUTF8; + } + + public Long getValidFromDay() { + + return this.validFromDay; + } + + public Long getValidFromTime() { + + return this.validFromTime; + } + + public Long getValidUntilDay() { + + return this.validUntilDay; + } + + public Long getValidUntilTime() { + + return this.validUntilTime; + } + + public Long getNumberOfDaysValid() { + + return Asn1BigInteger.toLong(numberOfDaysValid); + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public void setReferenceIA5(String referenceIA5) { + + this.referenceIA5 = referenceIA5; + } + + public void setReferenceNum(Asn1BigInteger referenceNum) { + + this.referenceNum = 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 setProductName(String productName) { + + this.productName = productName; + } + + public void setStationCodeTable(CodeTableType stationCodeTable) { + + this.stationCodeTable = stationCodeTable; + } + + public void setStationNum(SequenceOfUnrestrictedLong stationNum) { + + this.stationNum = stationNum; + } + + public void setStationIA5(SequenceOfStringIA5 stationIA5) { + + this.stationIA5 = stationIA5; + } + + public void setStationNameUTF8(SequenceOfStringUTF8 stationNameUTF8) { + + this.stationNameUTF8 = stationNameUTF8; + } + + public void setAreaCodeNum(SequenceOfUnrestrictedLong sequenceOfUnrestrictedLong) { + + this.areaCodeNum = sequenceOfUnrestrictedLong; + } + + public void setAreaCodeIA5(SequenceOfStringIA5 areaCodeIA5) { + + this.areaCodeIA5 = areaCodeIA5; + } + + public void setAreaNameUTF8(SequenceOfStringUTF8 areaNameUTF8) { + + this.areaNameUTF8 = areaNameUTF8; + } + + public void setValidFromDay(Long validFromDay) { + + this.validFromDay = validFromDay; + } + + public void setValidFromTime(Long validFromTime) { + + this.validFromTime = validFromTime; + } + + public void setValidUntilDay(Long validUntilDay) { + + this.validUntilDay = validUntilDay; + } + + public void setValidUntilTime(Long validUntilTime) { + + this.validUntilTime = validUntilTime; + } + + public void setNumberOfDaysValid(Long numberOfDaysValid) { + + this.numberOfDaysValid = Asn1BigInteger.toAsn1(numberOfDaysValid); + } + + public void setExtension(ExtensionData extension) { + + this.extension = extension; + } + + public void setValidityDates (Date fromDate, Date untilDate, Date issuingDate){ + + if (issuingDate == null || fromDate == null) return; + + this.validFromDay = DateTimeUtils.getDateDifference(issuingDate,fromDate); + this.validFromTime = DateTimeUtils.getTime(fromDate); + + if (untilDate != null){ + this.validUntilDay = DateTimeUtils.getDateDifference(fromDate, untilDate); + this.validUntilTime = DateTimeUtils.getTime(untilDate); + } + + } + + public Date getValidFromDate(Date issuingDate){ + + return DateTimeUtils.getDate(issuingDate, this.validFromDay, this.validFromTime); + + } + + public Date getValidUntilDate(Date issuingDate){ + + if (issuingDate == null) return null; + + if (this.validFromDay == null) { + this.validFromDay = 0L; + } + + if (this.validUntilDay == null) { + return null; + } + + + return DateTimeUtils.getDate(issuingDate, this.validFromDay + this.validUntilDay, this.validUntilTime); + + } + + public Long getValidFromUTCOffset() { + return validFromUTCOffset; + } + + public void setValidFromUTCOffset(Long validFromUTCOffset) { + this.validFromUTCOffset = validFromUTCOffset; + } + + public Long getValidUntilUTCOffset() { + return validUntilUTCOffset; + } + + public void setValidUntilUTCOffset(Long validUntilUTCOffset) { + this.validUntilUTCOffset = validUntilUTCOffset; + } + + + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/TariffType.java b/src/org/uic/barcode/ticket/api/asn/omv2/TariffType.java new file mode 100644 index 0000000..efc5d3b --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/TariffType.java @@ -0,0 +1,206 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +@HasExtensionMarker +public class TariffType extends Object { + public TariffType() { + } + @FieldOrder(order = 0) + @IntRange(minValue=1,maxValue=200) + @Asn1Default(value = "1") + @Asn1Optional public Long numberOfPassengers; + + @FieldOrder(order = 1) + @Asn1Optional public PassengerType passengerType; + + @FieldOrder(order = 2) + @IntRange(minValue=1,maxValue=64) + @Asn1Optional public Long ageBelow; + + @FieldOrder(order = 3) + @IntRange(minValue=1,maxValue=128) + @Asn1Optional public Long ageAbove; + + @FieldOrder(order = 5) + @Asn1Optional public SequenceOfTravelerId traverlerid; + + @FieldOrder(order = 6) + public Boolean restrictedToCountryOfResidence; + + @FieldOrder(order = 7) + @Asn1Optional public RouteSectionType restrictedToRouteSection; + + @FieldOrder(order = 8) + @Asn1Optional public SeriesDetailType seriesDataDetails; + + @FieldOrder(order = 9) + @Asn1Optional public Asn1BigInteger tariffIdNum; + + @FieldOrder(order = 10) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String tariffIdIA5; + + @FieldOrder(order = 11) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String tariffDesc; + + @FieldOrder(order = 12) + @Asn1Optional public SequenceOfCardReferenceType reductionCard; + + + + public Long getNumberOfPassengers() { + + if (numberOfPassengers == null) { + return new Long(1); + } + + return this.numberOfPassengers; + } + + public PassengerType getPassengerType() { + + return this.passengerType; + } + + public Long getAgeBelow() { + + return this.ageBelow; + } + + public Long getAgeAbove() { + + return this.ageAbove; + } + + public SequenceOfTravelerId getTraverlerid() { + + return this.traverlerid; + } + + public Boolean getRestrictedToCountryOfResidence() { + + return this.restrictedToCountryOfResidence; + } + + public RouteSectionType getRestrictedToRouteSection() { + + return this.restrictedToRouteSection; + } + + public SeriesDetailType getSeriesDataDetails() { + + return this.seriesDataDetails; + } + + public Long getTariffIdNum() { + + return Asn1BigInteger.toLong(this.tariffIdNum); + } + + public String getTariffIdIA5() { + + return this.tariffIdIA5; + } + + public String getTariffDesc() { + + return this.tariffDesc; + } + + public SequenceOfCardReferenceType getReductionCard() { + + return this.reductionCard; + } + + public void setNumberOfPassengers(Long numberOfPassengers) { + + this.numberOfPassengers = numberOfPassengers; + } + + public void setPassengerType(PassengerType passengerType) { + + this.passengerType = passengerType; + } + + public void setAgeBelow(Long ageBelow) { + + this.ageBelow = ageBelow; + } + + public void setAgeAbove(Long ageAbove) { + + this.ageAbove = ageAbove; + } + + public void setTraverlerid(SequenceOfTravelerId traverlerid) { + + this.traverlerid = traverlerid; + } + + public void setRestrictedToCountryOfResidence(Boolean restrictedToCountryOfResidence) { + + this.restrictedToCountryOfResidence = restrictedToCountryOfResidence; + } + + public void setRestrictedToRouteSection(RouteSectionType restrictedToRouteSection) { + + this.restrictedToRouteSection = restrictedToRouteSection; + } + + public void setSeriesDataDetails(SeriesDetailType seriesDataDetails) { + + this.seriesDataDetails = seriesDataDetails; + } + + public void setTariffIdNum(Long tariffIdNum) { + + this.tariffIdNum = Asn1BigInteger.toAsn1(tariffIdNum); + } + + public void setTariffIdIA5(String tariffIdIA5) { + + this.tariffIdIA5 = tariffIdIA5; + } + + public void setTariffDesc(String tariffDesc) { + + this.tariffDesc = tariffDesc; + } + + public void setReductionCard(SequenceOfCardReferenceType reductionCard) { + + this.reductionCard = reductionCard; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/TicketDetailData.java b/src/org/uic/barcode/ticket/api/asn/omv2/TicketDetailData.java new file mode 100644 index 0000000..4cdac60 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/TicketDetailData.java @@ -0,0 +1,190 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + + + +import org.uic.barcode.asn1.datatypes.Choice; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; + +@Choice +@HasExtensionMarker +public class TicketDetailData extends Object { + public TicketDetailData() { + } + + @FieldOrder(order = 0) + public ReservationData reservation; + + @FieldOrder(order = 1) + public CarCarriageReservationData carCarriageReservation; + + @FieldOrder(order = 2) + public OpenTicketData openTicket; + + @FieldOrder(order = 3) + public PassData pass; + + @FieldOrder(order = 4) + public VoucherData voucher; + + @FieldOrder(order = 5) + public CustomerCardData customerCard; + + @FieldOrder(order = 6) + public CountermarkData counterMark; + + @FieldOrder(order = 7) + public ParkingGroundData parkingGround; + + @FieldOrder(order = 8) + public FIPTicketData fipTicket; + + @FieldOrder(order = 9) + public StationPassageData stationPassage; + + @FieldOrder(order = 10) + public DelayConfirmation delayConfirmation; + + @FieldOrder(order = 11) + public ExtensionData extension; + + public ReservationData getReservation() { + + return this.reservation; + } + + public CarCarriageReservationData getCarCarriageReservation() { + + return this.carCarriageReservation; + } + + public OpenTicketData getOpenTicket() { + + return this.openTicket; + } + + public PassData getPass() { + + return this.pass; + } + + public VoucherData getVoucher() { + + return this.voucher; + } + + public CustomerCardData getCustomerCard() { + + return this.customerCard; + } + + public CountermarkData getCounterMark() { + + return this.counterMark; + } + + public ParkingGroundData getParkingGround() { + + return this.parkingGround; + } + + public FIPTicketData getFipTicket() { + + return this.fipTicket; + } + + public StationPassageData getStationPassage() { + + return this.stationPassage; + } + + public DelayConfirmation getDelayConfirmation() { + + return this.delayConfirmation; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public void setReservation(ReservationData reservation) { + + this.reservation = reservation; + } + + public void setCarCarriageReservation(CarCarriageReservationData carCarriageReservation) { + + this.carCarriageReservation = carCarriageReservation; + } + + public void setOpenTicket(OpenTicketData openTicket) { + + this.openTicket = openTicket; + } + + public void setPass(PassData pass) { + + this.pass = pass; + } + + public void setVoucher(VoucherData voucher) { + + this.voucher = voucher; + } + + public void setCustomerCard(CustomerCardData customerCard) { + + this.customerCard = customerCard; + } + + public void setCounterMark(CountermarkData counterMark) { + + this.counterMark = counterMark; + } + + public void setParkingGround(ParkingGroundData parkingGround) { + + this.parkingGround = parkingGround; + } + + public void setFipTicket(FIPTicketData fipTicket) { + + this.fipTicket = fipTicket; + } + + public void setStationPassage(StationPassageData stationPassage) { + + this.stationPassage = stationPassage; + } + + public void setDelayConfirmation(DelayConfirmation delayConfirmation) { + + this.delayConfirmation = delayConfirmation; + } + + public void setExtension(ExtensionData extension) { + + this.extension = extension; + } + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/TicketLinkType.java b/src/org/uic/barcode/ticket/api/asn/omv2/TicketLinkType.java new file mode 100644 index 0000000..d1c02a6 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/TicketLinkType.java @@ -0,0 +1,156 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +@HasExtensionMarker +public class TicketLinkType extends Object { + public TicketLinkType() { + } + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String referenceIA5; + + @FieldOrder(order = 1) + @Asn1Optional public Asn1BigInteger referenceNum; + + @FieldOrder(order = 2) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String issuerName; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String issuerPNR; + + @FieldOrder(order = 4) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long productOwnerNum; + + @FieldOrder(order = 5) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productOwnerIA5; + + @FieldOrder(order = 6) + @Asn1Default(value="openTicket") + @Asn1Optional public TicketType ticketType; + + @FieldOrder(order = 7) + @Asn1Default(value="issuedTogether") + @Asn1Optional public LinkMode linkMode; + + public String getReferenceIA5() { + + return this.referenceIA5; + } + + public Long getReferenceNum() { + return Asn1BigInteger.toLong(this.referenceNum); + } + + public String getIssuerName() { + + return this.issuerName; + } + + public Long getProductOwnerNum() { + + return this.productOwnerNum; + } + + public String getProductOwnerIA5() { + + return this.productOwnerIA5; + } + + public TicketType getTicketType() { + + if (ticketType == null) { + return TicketType.openTicket; + } + + return this.ticketType; + } + + public LinkMode getLinkMode() { + + if (linkMode == null){ + return LinkMode.issuedTogether; + } + + return this.linkMode; + } + + public void setReferenceIA5(String referenceIA5) { + + this.referenceIA5 = referenceIA5; + } + + public void setReferenceNum(Long referenceNum) { + this.referenceNum = Asn1BigInteger.toAsn1(referenceNum); + } + + public void setIssuerName(String issuerName) { + + this.issuerName = issuerName; + } + + public void setProductOwnerNum(Long productOwnerNum) { + + this.productOwnerNum = productOwnerNum; + } + + public void setProductOwnerIA5(String productOwnerIA5) { + + this.productOwnerIA5 = productOwnerIA5; + } + + public void setTicketType(TicketType ticketType) { + + this.ticketType = ticketType; + } + + public void setLinkMode(LinkMode linkMode) { + + this.linkMode = linkMode; + } + + public String getIssuerPNR() { + return issuerPNR; + } + + public void setIssuerPNR(String issuerPNR) { + this.issuerPNR = issuerPNR; + } + + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/TicketType.java b/src/org/uic/barcode/ticket/api/asn/omv2/TicketType.java new file mode 100644 index 0000000..3787266 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/TicketType.java @@ -0,0 +1,41 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; + +@HasExtensionMarker +public enum TicketType { + openTicket("openTicket"), + pass("pass"), + reservation("reservation"), + carCarriageReservation("carCarriageReservation"); + + public String text; + + TicketType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/TimeRangeType.java b/src/org/uic/barcode/ticket/api/asn/omv2/TimeRangeType.java new file mode 100644 index 0000000..0c8bb90 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/TimeRangeType.java @@ -0,0 +1,59 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +public class TimeRangeType extends Object { + public TimeRangeType() { + } + + @FieldOrder(order = 0) + @IntRange(minValue=0,maxValue=1439) + public Long fromTime; + + @FieldOrder(order = 1) + @IntRange(minValue=0,maxValue=1439) + public Long untilTime; + + public Long getFromTime() { + + return this.fromTime; + } + + public Long getUntilTime() { + + return this.untilTime; + } + + public void setFromTime(Long fromTime) { + + this.fromTime = fromTime; + } + + public void setUntilTime(Long untilTime) { + + this.untilTime = untilTime; + } + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/TokenType.java b/src/org/uic/barcode/ticket/api/asn/omv2/TokenType.java new file mode 100644 index 0000000..d8ac20c --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/TokenType.java @@ -0,0 +1,92 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypesimpl.OctetString; + +@Sequence +public class TokenType extends Object { + public TokenType() { + } + + @FieldOrder(order = 0) + @Asn1Optional public Long tokenProviderNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String tokenProviderIA5; + + @FieldOrder(order = 2) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String tokenSpecification; + + @FieldOrder(order = 4) + public OctetString token; + + public Long getTokenProviderNum() { + + return this.tokenProviderNum; + } + + public String getTokenProviderIA5() { + + return this.tokenProviderIA5; + } + + public String getTokenSpecification() { + + return this.tokenSpecification; + } + + public byte[] getToken() { + + return token.toByteArray(); + + } + + public void setTokenProviderNum(Long tokenProviderNum) { + + this.tokenProviderNum = tokenProviderNum; + } + + public void setTokenProviderIA5(String tokenProviderIA5) { + + this.tokenProviderIA5 = tokenProviderIA5; + } + + public void setTokenSpecification(String tokenSpecification) { + + this.tokenSpecification = tokenSpecification; + } + + public void setToken(byte[] token) { + + this.token = new OctetString(token); + + } + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/TrainLinkType.java b/src/org/uic/barcode/ticket/api/asn/omv2/TrainLinkType.java new file mode 100644 index 0000000..7c3de46 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/TrainLinkType.java @@ -0,0 +1,184 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Date; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +public class TrainLinkType extends Object { + public TrainLinkType() { + } + + @FieldOrder(order = 0) + @Asn1Optional public Asn1BigInteger trainNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String trainIA5; + + @FieldOrder(order = 2) + @IntRange(minValue=0,maxValue=370) + @Asn1Optional public Long travelDate; + + @FieldOrder(order = 3) + @IntRange(minValue=0,maxValue=1440) + @Asn1Optional public Long departureTime; + + @FieldOrder(order = 4) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long departureUTCOffset; + + @FieldOrder(order = 5) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long fromStationNum; + + @FieldOrder(order = 6) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String fromStationIA5; + + @FieldOrder(order = 7) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long toStationNum; + + @FieldOrder(order = 8) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String toStationIA5; + + @FieldOrder(order = 9) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String fromStationName; + + @FieldOrder(order = 10) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String toStationName; + + public Long getTrainNum() { + return Asn1BigInteger.toLong(this.trainNum); + } + + public String getTrainIA5() { + return this.trainIA5; + } + + public Long getTravelDate() { + return this.travelDate; + } + + public Long getDepartureTime() { + return this.departureTime; + } + + 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 getFromStationName() { + return this.fromStationName; + } + + public String getToStationName() { + return this.toStationName; + } + + public void setTrainNum(Long trainNum) { + this.trainNum = Asn1BigInteger.toAsn1(trainNum); + } + + public void setTrainIA5(String trainIA5) { + this.trainIA5 = trainIA5; + } + + public void setTravelDate(Long travelDate) { + this.travelDate = travelDate; + } + + public void setDepartureTime(Long departureTime) { + this.departureTime = departureTime; + } + + 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 setFromStationName(String fromStationName) { + this.fromStationName = fromStationName; + } + + public void setToStationName(String toStationName) { + this.toStationName = toStationName; + } + + public void setDepartureDate(Date departure, Date issuingDate){ + + if (issuingDate == null || departure == null) return; + + this.travelDate = DateTimeUtils.getDateDifference(issuingDate,departure); + this.departureTime = DateTimeUtils.getTime(departure); + } + + public void setDepartureTimeZone(Date dateLocal, Date dateUTC ) { + // -- (UTC = local + offset * 15 Minutes) + this.departureUTCOffset = new Long(dateLocal.getTime() - dateUTC.getTime()) / (1000 * 60 * 15); + } + + public Date getDepartureDate(Date issuingDate){ + return DateTimeUtils.getDate(issuingDate, this.travelDate, this.departureTime); + } + + public Date getUTCDepartureDate(Date issuingDate){ + return DateTimeUtils.getUTCDate(issuingDate, this.travelDate, this.departureTime, this.departureUTCOffset); + } + + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/TravelClassType.java b/src/org/uic/barcode/ticket/api/asn/omv2/TravelClassType.java new file mode 100644 index 0000000..37c4ac7 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/TravelClassType.java @@ -0,0 +1,50 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; + +@HasExtensionMarker +public enum TravelClassType { + notApplicabel("notApplicabel"), + first("first"), + second("second"), + tourist("tourist"), + comfort("comfort"), + premium("premium"), + business("business"), + all("all"), + premiumFirst("A"), + standardFirst("B"), + premiumSecond("C"), + standardSecond("D"); + + + public String text; + + TravelClassType(String text) { + this.text = text; + } + + public String toString(){ + return text; + } +} + diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/TravelerData.java b/src/org/uic/barcode/ticket/api/asn/omv2/TravelerData.java new file mode 100644 index 0000000..53d6019 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/TravelerData.java @@ -0,0 +1,82 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.FixedSize; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +@HasExtensionMarker +public class TravelerData extends Object { + public TravelerData() { + } + @FieldOrder(order = 0) + @Asn1Optional public SequenceOfTravelerType traveler; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @FixedSize(2) + @Asn1Optional public String preferedLanguage; + + @FieldOrder(order = 2) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String groupName; + + + public List getTraveler() { + + return this.traveler; + } + + public String getPreferedLanguage() { + + return this.preferedLanguage; + } + + public String getGroupName() { + + return this.groupName; + } + + public void setTraveler(SequenceOfTravelerType traveler) { + + this.traveler = traveler; + } + + public void setPreferedLanguage(String preferedLanguage) { + + this.preferedLanguage = preferedLanguage; + } + + public void setGroupName(String groupName) { + + this.groupName = groupName; + } + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/TravelerType.java b/src/org/uic/barcode/ticket/api/asn/omv2/TravelerType.java new file mode 100644 index 0000000..b0efae0 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/TravelerType.java @@ -0,0 +1,322 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; + +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypes.SizeRange; + +@Sequence +@HasExtensionMarker +public class TravelerType extends Object { + public TravelerType() { + } + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String firstName; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String secondName; + + @FieldOrder(order = 2) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String lastName; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String idCard; + + @FieldOrder(order = 4) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String passportId; + + @FieldOrder(order = 5) + @SizeRange(minValue = 1, maxValue = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String title; + + @FieldOrder(order = 6) + @Asn1Optional public GenderType gender; + + @FieldOrder(order = 7) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String customerIdIA5; + + @FieldOrder(order = 8) + @Asn1Optional public Long customerIdNum; + + @FieldOrder(order = 9) + @IntRange(minValue=1901,maxValue=2155) + @Asn1Optional public Long yearOfBirth; + + @FieldOrder(order = 10) + @IntRange(minValue=0,maxValue=366) + @Asn1Optional public Long dayOfBirth; + + @FieldOrder(order = 11) + public Boolean ticketHolder = true; + + @FieldOrder(order = 12) + @Asn1Optional public PassengerType passengerType; + + @FieldOrder(order = 13) + @Asn1Optional public Boolean passengerWithReducedMobility; + + @FieldOrder(order = 14) + @IntRange(minValue=1,maxValue=999) + @Asn1Optional public Long countryOfResidence; + + @FieldOrder(order = 15) + @IntRange(minValue=1,maxValue=999) + @Asn1Optional public Long countryOfPassport; + + @FieldOrder(order = 16) + @IntRange(minValue=1,maxValue=999) + @Asn1Optional public Long countryOfIdCard; + + @FieldOrder(order = 17) + @Asn1Optional public SequenceOfCustomerStatusType status; + + + + public String getFirstName() { + + return this.firstName; + } + + public String getSecondName() { + + return this.secondName; + } + + public String getLastName() { + + return this.lastName; + } + + public String getIdCard() { + + return this.idCard; + } + + public String getPassportId() { + + return this.passportId; + } + + public String getTitle() { + + return this.title; + } + + public GenderType getGender() { + + return this.gender; + } + + public String getCustomerIdIA5() { + + return this.customerIdIA5; + } + + public Long getCustomerIdNum() { + + return this.customerIdNum; + } + + public Long getYearOfBirth() { + + return this.yearOfBirth; + } + + public Long getDayOfBirth() { + + return this.dayOfBirth; + } + + public Boolean getTicketHolder() { + + return this.ticketHolder; + } + + public PassengerType getPassengerType() { + + return this.passengerType; + } + + public Boolean getPassengerWithReducedMobility() { + return this.passengerWithReducedMobility; + } + + public Long getCountryOfResidence() { + + return this.countryOfResidence; + } + + public Long getCountryOfPassport() { + + return this.countryOfPassport; + } + + public Long getCountryOfIdCard() { + + return this.countryOfIdCard; + } + + public SequenceOfCustomerStatusType getStatus() { + + return this.status; + } + + public void setFirstName(String firstName) { + + this.firstName = firstName; + } + + public void setSecondName(String secondName) { + + this.secondName = secondName; + } + + public void setLastName(String lastName) { + + this.lastName = lastName; + } + + public void setIdCard(String idCard) { + + this.idCard = idCard; + } + + public void setPassportId(String passportId) { + + this.passportId = passportId; + } + + public void setTitle(String title) { + + this.title = title; + } + + public void setGender(GenderType gender) { + + this.gender = gender; + } + + public void setCustomerIdIA5(String customerIdIA5) { + + this.customerIdIA5 = customerIdIA5; + } + + public void setCustomerIdNum(Long customerIdNum) { + + this.customerIdNum = customerIdNum; + } + + public void setYearOfBirth(Long yearOfBirth) { + + this.yearOfBirth = yearOfBirth; + } + + public void setDayOfBirth(Long dayOfBirth) { + + this.dayOfBirth = dayOfBirth; + } + + public void setTicketHolder(Boolean ticketHolder) { + + this.ticketHolder = ticketHolder; + } + + public void setPassengerType(PassengerType passengerType) { + + this.passengerType = passengerType; + } + + public void setPassengerWithReducedMobility(Boolean passengerWithReducedMobility) { + + this.passengerWithReducedMobility = passengerWithReducedMobility; + } + + public void setCountryOfResidence(Long countryOfResidence) { + + this.countryOfResidence = countryOfResidence; + } + + public void setCountryOfPassport(Long countryOfPassport) { + + this.countryOfPassport = countryOfPassport; + } + + public void setCountryOfIdCard(Long countryOfIdCard) { + + this.countryOfIdCard = countryOfIdCard; + } + + public void setStatus(SequenceOfCustomerStatusType status) { + + this.status = status; + } + + + + public void setDateOfBirth(Date date){ + + if (date == null) return; + + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + + this.yearOfBirth = new Long( cal.get(Calendar.YEAR)); + this.dayOfBirth = new Long (cal.get(Calendar.DAY_OF_YEAR)); + + + } + + public Date getDateOfBirth() { + + if (this.yearOfBirth == null) return null; + if (this.dayOfBirth == null) return null; + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.setTimeZone(TimeZone.getTimeZone("UTC")); + cal.set(Calendar.YEAR, this.yearOfBirth.intValue()); + cal.set(Calendar.DAY_OF_YEAR, this.dayOfBirth.intValue()); + cal.set(Calendar.HOUR_OF_DAY,0); + cal.set(Calendar.MINUTE,0); + + return cal.getTime(); + } + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/UicRailTicketData.java b/src/org/uic/barcode/ticket/api/asn/omv2/UicRailTicketData.java new file mode 100644 index 0000000..31fddba --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/UicRailTicketData.java @@ -0,0 +1,115 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.List; + +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.uper.UperEncoder; + +@Sequence +@HasExtensionMarker +public class UicRailTicketData extends Object { + public UicRailTicketData() { + } + + @FieldOrder(order = 0) + public IssuingData issuingDetail; + + @FieldOrder(order = 1) + @Asn1Optional public TravelerData travelerDetail; + + @FieldOrder(order = 2) + @Asn1Optional public SequenceOfDocumentData transportDocument; + + @FieldOrder(order = 3) + @Asn1Optional public ControlData controlDetail; + + @FieldOrder(order = 4) + @Asn1Optional public SequenceOfExtensionData extension; + + public IssuingData getIssuingDetail() { + + return this.issuingDetail; + } + + public TravelerData getTravelerDetail() { + + return this.travelerDetail; + } + + public List getTransportDocument() { + + return this.transportDocument; + } + + public ControlData getControlDetail() { + + return this.controlDetail; + } + + public List getExtension() { + + return this.extension; + } + + public void setIssuingDetail(IssuingData issuingDetail) { + + this.issuingDetail = issuingDetail; + } + + public void setTravelerDetail(TravelerData travelerDetail) { + + this.travelerDetail = travelerDetail; + } + + public void setTransportDocument(SequenceOfDocumentData transportDocument) { + + this.transportDocument = transportDocument; + } + + public void setControlDetail(ControlData controlDetail) { + + this.controlDetail = controlDetail; + } + + public void setExtension(SequenceOfExtensionData extension) { + + this.extension = extension; + } + + + public byte[] encode(){ + return UperEncoder.encode(this); + } + + public String encodeToHex(){ + return UperEncoder.hexStringFromBytes(UperEncoder.encode(this)); + } + + + public static UicRailTicketData decode(byte[] bytes) { + return UperEncoder.decode(bytes, UicRailTicketData.class); + } + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/ValidityPeriodDetailType.java b/src/org/uic/barcode/ticket/api/asn/omv2/ValidityPeriodDetailType.java new file mode 100644 index 0000000..dd9935b --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/ValidityPeriodDetailType.java @@ -0,0 +1,73 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Collection; + +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.Asn1SequenceOf; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +public class ValidityPeriodDetailType extends Object { + public ValidityPeriodDetailType() { + } + + @FieldOrder(order = 0) + @Asn1Optional public SequenceOfValidityPeriodType validityPeriod; + + @FieldOrder(order = 1) + @Asn1Optional public SequenceOfTimeRangeType excludedTimeRange; + + + public class SequenceOfTimeRangeType extends Asn1SequenceOf { + public SequenceOfTimeRangeType() { super(); } + public SequenceOfTimeRangeType(Collection coll) { super(coll); } + } + + + public class SequenceOfValidityPeriodType extends Asn1SequenceOf { + public SequenceOfValidityPeriodType() { super(); } + public SequenceOfValidityPeriodType(Collection coll) { super(coll); } + } + + public SequenceOfValidityPeriodType getValidityPeriod() { + + return this.validityPeriod; + } + + public SequenceOfTimeRangeType getExcludedTimeRange() { + + return this.excludedTimeRange; + } + + public void setValidityPeriod(SequenceOfValidityPeriodType validityPeriod) { + + this.validityPeriod = validityPeriod; + } + + public void setExcludedTimeRange(SequenceOfTimeRangeType excludedTimeRange) { + + this.excludedTimeRange = excludedTimeRange; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/ValidityPeriodType.java b/src/org/uic/barcode/ticket/api/asn/omv2/ValidityPeriodType.java new file mode 100644 index 0000000..6c36c97 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/ValidityPeriodType.java @@ -0,0 +1,164 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Date; + +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.Sequence; + +@Sequence +public class ValidityPeriodType extends Object { + public ValidityPeriodType() { + } + + @FieldOrder(order = 0) + @IntRange(minValue=0,maxValue=700) + @Asn1Default(value="0") + @Asn1Optional public Long validFromDay; + + @FieldOrder(order = 1) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long validFromTime; + + @FieldOrder(order = 2) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validFromUTCOffset; + + @FieldOrder(order = 3) + @IntRange(minValue=0,maxValue=370) + @Asn1Default(value="0") + @Asn1Optional public Long validUntilDay; + + @FieldOrder(order = 4) + @IntRange(minValue=0,maxValue=1439) + @Asn1Optional public Long validUntilTime; + + @FieldOrder(order = 5) + @IntRange(minValue=-60, maxValue=60) + @Asn1Optional public Long validUntilUTCOffset; + + public Long getValidFromDay() { + + if (validFromDay == null) { + return new Long(0); + } + + return this.validFromDay; + } + + public Long getValidFromTime() { + + return this.validFromTime; + } + + public Long getValidUntilDay() { + + if (validUntilDay == null) { + return new Long(0); + } + + return this.validUntilDay; + } + + public Long getValidUntilTime() { + + return this.validUntilTime; + } + + public void setValidFromDay(Long validFromDay) { + + this.validFromDay = validFromDay; + } + + public void setValidFromTime(Long validFromTime) { + + this.validFromTime = validFromTime; + } + + public void setValidUntilDay(Long validUntilDay) { + + this.validUntilDay = validUntilDay; + } + + public void setValidUntilTime(Long validUntilTime) { + + this.validUntilTime = validUntilTime; + } + + public void setValidityDates (Date fromDate, Date untilDate, Date issuingDate){ + + if (issuingDate == null || fromDate == null) return; + + this.validFromDay = DateTimeUtils.getDateDifference(issuingDate,fromDate); + this.validFromTime = DateTimeUtils.getTime(fromDate); + + if (untilDate != null){ + this.validUntilDay = DateTimeUtils.getDateDifference(fromDate, untilDate); + this.validUntilTime = DateTimeUtils.getTime(untilDate); + } + + } + + public Date getValidFromDate(Date issuingDate){ + + return DateTimeUtils.getDate(issuingDate, this.validFromDay, this.validFromTime); + + } + + public Date getValidUntilDate(Date issuingDate){ + + if (issuingDate == null) return null; + + if (this.validFromDay == null) { + this.validFromDay = 0L; + } + + if (this.validUntilDay == null) { + return null; + } + + + return DateTimeUtils.getDate(issuingDate, this.validFromDay + this.validUntilDay, this.validUntilTime); + + } + + public Long getValidFromUTCOffset() { + return validFromUTCOffset; + } + + public void setValidFromUTCOffset(Long validFromUTCOffset) { + this.validFromUTCOffset = validFromUTCOffset; + } + + public Long getValidUntilUTCOffset() { + return validUntilUTCOffset; + } + + public void setValidUntilUTCOffset(Long validUntilUTCOffset) { + this.validUntilUTCOffset = validUntilUTCOffset; + } + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/VatDetailType.java b/src/org/uic/barcode/ticket/api/asn/omv2/VatDetailType.java new file mode 100644 index 0000000..adfb4e8 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/VatDetailType.java @@ -0,0 +1,87 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + + +@Sequence +public class VatDetailType extends Object { + public VatDetailType() { + } + + @FieldOrder(order = 0) + @IntRange(minValue = 1, maxValue = 999) + public Long country; + + @FieldOrder(order = 1) + @IntRange(minValue = 0, maxValue = 999) + public Long percentage; + + @FieldOrder(order = 2) + @Asn1Optional public Asn1BigInteger amount; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String vatId; + + public Long getCountry() { + return country; + } + + public void setCountry(Long country) { + this.country = country; + } + + public Long getPercentage() { + return percentage; + } + + public void setPercentage(Long percentage) { + this.percentage = percentage; + } + + public Long getAmount() { + return Asn1BigInteger.toLong(amount); + } + + public void setAmount(Long amount) { + this.amount = Asn1BigInteger.toAsn1(amount); + } + + public String getVatId() { + return vatId; + } + + public void setVatId(String vatId) { + this.vatId = vatId; + } + + + + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/ViaStationType.java b/src/org/uic/barcode/ticket/api/asn/omv2/ViaStationType.java new file mode 100644 index 0000000..0e2ca6c --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/ViaStationType.java @@ -0,0 +1,181 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; + +@Sequence +@HasExtensionMarker +public class ViaStationType extends Object { + public ViaStationType() { + } + + @FieldOrder(order = 0) + @Asn1Default("stationUIC") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 1) + @IntRange(minValue=1,maxValue=9999999) + @Asn1Optional public Long stationNum; + + @FieldOrder(order = 2) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String stationIA5; + + @FieldOrder(order = 3) + @Asn1Optional public SequenceOfViaStationType alternativeRoutes; + + @FieldOrder(order = 4) + @Asn1Optional public SequenceOfViaStationType route; + + @FieldOrder(order = 5) + @Asn1Optional public Boolean border = false; + + @FieldOrder(order = 6) + @Asn1Optional public SequenceOfCarrierNum carriersNum; + + @FieldOrder(order = 7) + @Asn1Optional public SequenceOfStringIA5 carriersIA5; + + @FieldOrder(order = 8) + @Asn1Optional public Asn1BigInteger seriesId; + + @FieldOrder(order = 9) + @Asn1Optional public Asn1BigInteger routeId; + + + + + + public CodeTableType getStationCodeTable() { + + if (stationCodeTable == null) { + return CodeTableType.stationUIC; + } + + return this.stationCodeTable; + } + + public Long getStationNum() { + + return this.stationNum; + } + + public String getStationIA5() { + + return this.stationIA5; + } + + public SequenceOfViaStationType getAlternativeRoutes() { + + return this.alternativeRoutes; + } + + public SequenceOfViaStationType getRoute() { + + return this.route; + } + + public Boolean getBorder() { + + return this.border; + } + + public SequenceOfCarrierNum getCarriersNum() { + + return this.carriersNum; + } + + public SequenceOfStringIA5 getCarriersIA5() { + + return this.carriersIA5; + } + + public Long getSeriesId() { + + return Asn1BigInteger.toLong(this.seriesId); + } + + public Long getRouteId() { + + return Asn1BigInteger.toLong(this.routeId); + } + + public void setStationCodeTable(CodeTableType stationCodeTable) { + + this.stationCodeTable = stationCodeTable; + } + + public void setStationNum(Long stationNum) { + + this.stationNum = stationNum; + } + + public void setStationIA5(String stationIA5) { + + this.stationIA5 = stationIA5; + } + + public void setAlternativeRoutes(SequenceOfViaStationType alternativeRoutes) { + + this.alternativeRoutes = alternativeRoutes; + } + + public void setRoute(SequenceOfViaStationType route) { + + this.route = route; + } + + public void setBorder(Boolean border) { + + this.border = border; + } + + public void setCarriersNum(SequenceOfCarrierNum carriersNum) { + + this.carriersNum = carriersNum; + } + + public void setCarriersIA5(SequenceOfStringIA5 carriersIA5) { + + this.carriersIA5 = carriersIA5; + } + + public void setSeriesId(Long seriesId) { + + this.seriesId = Asn1BigInteger.toAsn1(seriesId); + } + + public void setRouteId(Long routeId) { + + this.routeId = Asn1BigInteger.toAsn1(routeId); + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/VoucherData.java b/src/org/uic/barcode/ticket/api/asn/omv2/VoucherData.java new file mode 100644 index 0000000..458b040 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/VoucherData.java @@ -0,0 +1,313 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; + + +@Sequence +@HasExtensionMarker +public class VoucherData extends Object { + public VoucherData() { + } + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String referenceIA5; + + @FieldOrder(order = 1) + @Asn1Optional public Asn1BigInteger referenceNum; + + @FieldOrder(order = 2) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long productOwnerNum; + + @FieldOrder(order = 3) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productOwnerIA5; + + @FieldOrder(order = 4) + @IntRange(minValue=0,maxValue=65535) + @Asn1Optional public Long productIdNum; + + @FieldOrder(order = 5) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String productIdIA5; + + @FieldOrder(order = 6) + @IntRange(minValue=2016,maxValue=2269) + public Long validFromYear; + + @FieldOrder(order = 7) + @IntRange(minValue=0,maxValue=370) + public Long validFromDay; + + @FieldOrder(order = 8) + @IntRange(minValue=2016,maxValue=2269) + public Long validUntilYear; + + @FieldOrder(order = 9) + @IntRange(minValue=0,maxValue=370) + public Long validUntilDay; + + @FieldOrder(order = 10) + @Asn1Optional public Long value; + + @FieldOrder(order = 11) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long type; + + @FieldOrder(order = 12) + @RestrictedString(CharacterRestriction.UTF8String) + @Asn1Optional public String infoText; + + @FieldOrder(order = 13) + @Asn1Optional public ExtensionData extension; + + + public String getReferenceIA5() { + + return this.referenceIA5; + } + + public Asn1BigInteger getReferenceNum() { + + return 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 getValidFromYear() { + + return this.validFromYear; + } + + public Long getValidFromDay() { + + return this.validFromDay; + } + + public Long getValidUntilYear() { + + return this.validUntilYear; + } + + public Long getValidUntilDay() { + + return this.validUntilDay; + } + + public Long getValue() { + + return this.value; + } + + public Long getType() { + + return this.type; + } + + public String getInfoText() { + + return this.infoText; + } + + public ExtensionData getExtension() { + + return this.extension; + } + + public void setReferenceIA5(String referenceIA5) { + + this.referenceIA5 = referenceIA5; + } + + public void setReferenceNum(Asn1BigInteger referenceNum) { + + this.referenceNum = 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 setValidFromYear(Long validFromYear) { + + this.validFromYear = validFromYear; + } + + public void setValidFromDay(Long validFromDay) { + + this.validFromDay = validFromDay; + } + + public void setValidUntilYear(Long validUntilYear) { + + this.validUntilYear = validUntilYear; + } + + public void setValidUntilDay(Long validUntilDay) { + + this.validUntilDay = validUntilDay; + } + + public void setValue(Long value) { + + this.value = value; + } + + public void setType(Long type) { + + this.type = type; + } + + public void setInfoText(String infoText) { + + this.infoText = infoText; + } + + public void setExtension(ExtensionData extension) { + + this.extension = extension; + } + + + public void setValidity (Date fromDate , Date untilDate){ + + Calendar fromCal = Calendar.getInstance(); + fromCal.clear(); + fromCal.setTime(fromDate); + + this.validFromYear = new Long( fromCal.get(Calendar.YEAR)); + this.validFromDay = new Long (fromCal.get(Calendar.DAY_OF_YEAR)); + + if (untilDate == null) return; + + Calendar untilCal = Calendar.getInstance(); + untilCal.clear(); + untilCal.setTime(untilDate); + + this.validUntilYear = new Long( untilCal.get(Calendar.YEAR)); + this.validUntilDay = new Long (untilCal.get(Calendar.DAY_OF_YEAR)); + + } + + + public void setValidFrom (Date fromDate){ + + if (fromDate == null) return; + + Calendar fromCal = Calendar.getInstance(); + fromCal.clear(); + fromCal.setTime(fromDate); + + this.validFromYear = new Long( fromCal.get(Calendar.YEAR)); + this.validFromDay = new Long (fromCal.get(Calendar.DAY_OF_YEAR)); + + } + + public void setValidUntil (Date untilDate){ + + if (untilDate == null) return; + + Calendar untilCal = Calendar.getInstance(); + untilCal.clear(); + untilCal.setTime(untilDate); + + this.validUntilYear = new Long( untilCal.get(Calendar.YEAR)); + this.validUntilDay = new Long (untilCal.get(Calendar.DAY_OF_YEAR)); + + } + + public Date getValidFrom(){ + + if (this.validFromYear == null || this.validFromYear == 0) return null; + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.setTimeZone(TimeZone.getTimeZone("UTC")); + cal.set(Calendar.YEAR, this.validFromYear.intValue()); + cal.set(Calendar.DAY_OF_YEAR, this.validFromDay.intValue()); + + return cal.getTime(); + + } + + public Date getValidUntil(){ + + if (this.validUntilYear == null || this.validUntilYear == 0) return null; + + Calendar cal = Calendar.getInstance(); + cal.clear(); + cal.setTimeZone(TimeZone.getTimeZone("UTC")); + cal.set(Calendar.YEAR, this.validUntilYear.intValue()); + cal.set(Calendar.DAY_OF_YEAR, this.validUntilDay.intValue()); + + return cal.getTime(); + + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/ZoneType.java b/src/org/uic/barcode/ticket/api/asn/omv2/ZoneType.java new file mode 100644 index 0000000..3f269ee --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/ZoneType.java @@ -0,0 +1,182 @@ +/* + * 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 . + * + */ +package org.uic.barcode.ticket.api.asn.omv2; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.asn1.datatypes.Asn1Default; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.HasExtensionMarker; +import org.uic.barcode.asn1.datatypes.IntRange; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypesimpl.OctetString; +import org.uic.barcode.asn1.datatypesimpl.SequenceOfUnrestrictedLong; + +@Sequence +@HasExtensionMarker + +public class ZoneType extends Object { + public ZoneType() { + } + + @FieldOrder(order = 0) + @IntRange(minValue=1,maxValue=32000) + @Asn1Optional public Long carrierNum; + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String carrierIA5; + + @FieldOrder(order = 2) + @Asn1Default("stationUIC") + @Asn1Optional public CodeTableType stationCodeTable; + + @FieldOrder(order = 3) + @IntRange(minValue=0,maxValue=9999999) + @Asn1Optional public Long entryStationNum; + + @FieldOrder(order = 4) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String entryStationIA5; + + @FieldOrder(order = 5) + @IntRange(minValue=0,maxValue=9999999) + @Asn1Optional public Long terminatingStationNum; + + @FieldOrder(order = 6) + @RestrictedString(CharacterRestriction.IA5String) + @Asn1Optional public String terminatingStationIA5; + + @FieldOrder(order = 7) + @Asn1Optional public Asn1BigInteger city; + + @FieldOrder(order = 8) + @Asn1Optional public SequenceOfUnrestrictedLong zoneId; + + @FieldOrder(order = 9) + @Asn1Optional public OctetString binaryZoneId; + + @FieldOrder(order = 10) + @Asn1Optional public String nutsCode; + + + public Long getCarrierNum() { + + return this.carrierNum; + } + + public String getCarrierIA5() { + + return this.carrierIA5; + } + + public CodeTableType getStationCodeTable() { + + if (stationCodeTable == null) { + return CodeTableType.stationUIC; + } + + return this.stationCodeTable; + } + + public Long getEntryStationNum() { + return this.entryStationNum; + } + + public String getEntryStationIA5() { + return this.entryStationIA5; + } + + public Long getTerminatingStationNum() { + return this.terminatingStationNum; + } + + public String getTerminatingStationIA5() { + return this.terminatingStationIA5; + } + + public Asn1BigInteger getCity() { + return this.city; + } + + public SequenceOfUnrestrictedLong getZoneId() { + return this.zoneId; + } + + public byte[] getBinaryZoneId() { + + return binaryZoneId.toByteArray(); + + } + + public String getNutsCode() { + return this.nutsCode; + } + + public void setCarrierNum(Long carrierNum) { + this.carrierNum = carrierNum; + } + + public void setCarrierIA5(String carrierIA5) { + this.carrierIA5 = carrierIA5; + } + + public void setStationCodeTable(CodeTableType stationCodeTable) { + this.stationCodeTable = stationCodeTable; + } + + public void setEntryStationNum(Long entryStationNum) { + this.entryStationNum = entryStationNum; + } + + public void setEntryStationIA5(String entryStationIA5) { + this.entryStationIA5 = entryStationIA5; + } + + public void setTerminatingStationNum(Long terminatingStationNum) { + this.terminatingStationNum = terminatingStationNum; + } + + public void setTerminatingStationIA5(String terminatingStationIA5) { + this.terminatingStationIA5 = terminatingStationIA5; + } + + public void setCity(Asn1BigInteger city) { + this.city = city; + } + + public void setZoneId(SequenceOfUnrestrictedLong zoneId) { + this.zoneId = zoneId; + } + + public void setBinaryZoneId(byte[] binaryZoneId) { + + this.binaryZoneId = new OctetString(binaryZoneId); + + } + + public void setNutsCode(String nutsCode) { + this.nutsCode = nutsCode; + } + + +} diff --git a/src/org/uic/barcode/ticket/api/asn/omv2/uicBarcodeFCBv2.0.asn b/src/org/uic/barcode/ticket/api/asn/omv2/uicBarcodeFCBv2.0.asn new file mode 100644 index 0000000..b67ac06 --- /dev/null +++ b/src/org/uic/barcode/ticket/api/asn/omv2/uicBarcodeFCBv2.0.asn @@ -0,0 +1,2040 @@ +-- Creator: ASN.1 Editor (http://asneditor.sourceforge.net) +-- Author: ClemensGantert +-- Created: Tue Aug 11 11:40:28 CEST 2015 +ASN-Module DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +-- imports and exports +-- EXPORTS ALL; + + +-- changes: +-- product id 1 bit more 65535 +-- open ticket transport mode EN 1545-1 +-- allowing -1 in differences of days between dates (validity of tickets crossing time zones) + +-- ############################################################################################## +-- # +-- # Draft version 2.0 - value 2 in the UIC bar code version element +-- # (see element 2 in U_FLEX record definition in leaflet 918.9) +-- # +-- ############################################################################################## + + +-- ############################################################################################## +-- # +-- # Naming and encoding conventions +-- # +-- # Elements included as String and as Numeric values: +-- # Some elements are included in different formats to reduce the data size. +-- # These elements must be included only once. +-- # These elements are named with the same name and appendix +-- # Num (numeric values) +-- # IA5 (String values according to ASN IA5String (7Bit)) +-- # Example: +-- # trainNum - in case of a numeric train number +-- # trainIA5 - in case of a alphanumeric train Id +-- # +-- # +-- # RICS codes must be used to encode companies (issuer, product owner, ...) where available +-- # other codes are possible based on bilateral agreements +-- # the format is kept more flexible to cover upcoming extensions of the RICS code by ERA +-- # +-- # Stations can be coded using the UIC and upcoming ERA code lists. Proprietary codes are +-- # possible based on bilateral agreements. Format: 1..9999999 or alphanumeric without +-- # special character (IA5String) +-- # +-- # +-- # ! INTEGERS must not exceed the value of 9,223,372,036,854,775,807 (64 bit) even in case +-- # ! they are unrestricted!!! +-- # ! +-- # ! Some elements like ReferenceNum or cardIdNum are defined as an unrestricted integer. +-- # ! Unlike other numerical values the cardIdNum and referenceNum can be larger than a usual 32 bit Integer +-- # ! Some ASN.1 implementation tools are limited to 32 bit integers which is too small. +-- # ! Please ensure to use a tool capable of dealing with larger numbers. +-- # +-- # Optional BOOLEANs have three values: "true", "false", "unknown" = the Boolean is absent from the data. +-- # +-- # +-- # Encoding of time: +-- # time is encoded as the number of minutes of the day 0 = 00:00, 1439 = 23:59, +-- # time data elements end with "time" in their name +-- # +-- # Encoding of date: +-- # ......................................................................................................... +-- # The issuing date is given in UTC, but some other date values are given in local time where the exact time zone is not known. +-- # +-- # For local dates the date is associated with the corresponding location: +-- # e.g.: +-- # valid from date -> location where the journey starts +-- # valid until date -> location where the journey covered by the ticket ends +-- # +-- # there could be rare cases where this does not provide a unique interpretation: +-- # e.g. open ticket or pass without start and end location for a collection of zones or countries with different time zones. +-- # in these cases the fare conditions must clarify the rules for these cases (e.g. by allowing to use the +-- # ticket a few hours after the end of validity). +-- # +-- # The difference in days is calculated from dates only, ignoring the time and time zone information. +-- # +-- # example 1: (31.12.2017 23:05 UTC == 01.01.2018 00:05 CET) : +-- # issuing date (UTC): 31.12.2017 23:05 == 01.01.2018 00:05 CET +-- # issuingYear = 2017 +-- # issuingDay = 365 +-- # issuingTime = 1385 +-- # local departure date (CET): 01.01.2018 00:15 == 31.12.2017 23:15 UTC +-- # departureDate = 1 (= 01.01.2018 - 31.12.2017) +-- # departureTime = 15 +-- # departureUTCOffset = -4 (UTC = local + offset * 15 Minutes) +-- # +-- # +-- # example 2: (01.01.2018 00:05 UTC == 31.12.2017 20:05 AST) +-- # issuing date (UTC): 01.01.2018 00:05 UTC == 31.12.2017 20:05 AST +-- # issuingYear = 2018 +-- # issuingDay = 1 +-- # issuingTime = 5 +-- # local departure date (AST): 31.12.2017 22:05 AST == 1.1.2018 02:05 UTC +-- # departureDate = -1 (= 31.12.2017 - 01.01.2018) +-- # departureTime = 1325 +-- # departureUTCOffset = 16 (UTC = local + offset * 15 Minutes) +-- # +-- # departureDate can become -1 with a departure west of the GMT zone only +-- # +-- # +-- # +-- # +-- # +-- # +-- # ASN.1 Extensions: +-- # +-- # The specification makes use of extension (",..."). +-- # These extensions might be defined in future versions of the UIC specification +-- # Implementations must support the extension feature of ASN.1, at least they must be able to ignore extensions while decoding the data +-- # ASN.1 extensions will be defined by UIC. It is not allowed to define bilateral extensions. +-- # +-- # Bilateral Extensions: +-- # Bilateral extensions can be included in the data element "ExtensionData". +-- # +-- # +-- # +-- ######################################################################################### + + +-- ############################################################################################ + + +-- type assignments + + -- ######################################################################################### + -- the basic entry point of the data structure + -- the data include: + -- -issuer informations + -- -the details of the transport document + -- -informations required for the control process + -- -informations on the travelers independent from the transport document + -- -proprietary extensions + -- + -- ########################################################################################## + UicRailTicketData ::= SEQUENCE { + -- data specific to the issuer + issuingDetail IssuingData, + + -- data on the travelers + travelerDetail TravelerData OPTIONAL, + + -- data of the transport document + --!!! proposal: replace this by a comment in the lealet on the total size of the barcode: more than one document to be used on bilateral agreement only + transportDocument SEQUENCE OF DocumentData OPTIONAL, + + -- data specific to support the ticket control process + controlDetail ControlData OPTIONAL, + + -- proprietary data defined bilaterally + extension SEQUENCE OF ExtensionData OPTIONAL + ,... + } + + + + -- ########################################################################################### + -- the choice on the different transport documents that can be included in the bar code data: + -- - reservation of seat / couchette or berths (IRT, RES, BOA) + -- - reservation of car carriage (VET) + -- - open ticket (NRT including NRT group ticket) (NRT, GRT, SUP, UPD, COI) + -- - Rail passes (including Eurail, Interail and local passes) (RPT) + -- - Voucher (TRV) + -- - Customer Cards (including bonus cards and reduction cards) + -- - counter marks issued for group tickets + -- - parking ground tickets + -- - FIP tickets + -- - station access / station passage tickets + -- - proprietary documents as an extension + -- ############################################################################################ + DocumentData ::= SEQUENCE { + + -- token + -- specific id to be exchanged with the ticket (e.g. id of the phone in case of tickets linked to a phone) + token TokenType OPTIONAL, + + -- choice of the ticket + ticket CHOICE + { + + -- Reservation (without car carriage) (IRT and RES) + reservation ReservationData, + + + -- Reservation of car carriage + carCarriageReservation CarCarriageReservationData, + + -- open ticket specification (NRT) + openTicket OpenTicketData, + + -- pass specification (RPT) including Eurail and Interrail + pass PassData, + + -- voucher + voucher VoucherData, + + -- customer card either to identify a customer and / or to provide reductions + customerCard CustomerCardData, + + -- countermark to accompagny a group ticket + counterMark CountermarkData, + + -- car parking slot + parkingGround ParkingGroundData, + + -- FIP duty ticket + fipTicket FIPTicketData, + + -- ticket to pass the gates at a station + stationPassage StationPassageData, + + -- proprietary data defined bilaterally + extension ExtensionData, + + -- delay confirmation + delayConfirmation DelayConfirmation + + ,... + } + ,... + } + + -- ######################################################################################## + -- confirmation of the delay of a train + -- + -- ######################################################################################## + DelayConfirmation ::= SEQUENCE { + + -- reference of the delay confirmation + referenceIA5 IA5String OPTIONAL, + referenceNum INTEGER OPTIONAL, + + -- train number of the delayed train - numeric or alphanumeric + trainNum INTEGER OPTIONAL, + trainIA5 IA5String OPTIONAL, + + -- departure date of the delayed train in local time + -- number of year + departureYear INTEGER (2016..2269) OPTIONAL, + -- number of the day in the year (1.1. = 1) + departureDay INTEGER (1..366) OPTIONAL, + departureTime INTEGER (0..1439) OPTIONAL, + departureUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + + + -- station where the delay became relevant + stationCodeTable CodeTableType DEFAULT stationUIC, + stationNum INTEGER (1..9999999) OPTIONAL, + stationIA5 IA5String OPTIONAL, + + -- delay in minutes at the mentioned station + delay INTEGER (1..999), + + -- indication that the train was cancelled + trainCancelled BOOLEAN, + + -- type of confirmation provided + confirmationType ConfirmationType DEFAULT travelerDelayConfirmation, + + -- affected original ticket(s) + affectedTickets SEQUENCE OF TicketLinkType OPTIONAL, + + -- info text + infoText UTF8String OPTIONAL, + + -- proprietary data defined bilaterally + extension ExtensionData OPTIONAL + ,... + } + + ConfirmationType ::= ENUMERATED { + trainDelayConfirmation (0), -- confirmation of train delay, whether the traveler was on board in unconfirmed + travelerDelayConfirmation (1), -- confirmation that the traveler was on board of the delayed train + trainLinkedTicketDelay (2) -- confirmation that a ticket linked to the delayed train was issued + ,... + } + + + -- ######################################################################################## + -- Details of the issuer and the issue of the ticket + -- - details on the issuer + -- - indication of test tickets (specimen) + -- - payment details: method of payment, currency + -- - proprietary PNR of the issuer to be used to identify the sale within + -- the issuers ecosystem + -- - web link to display more information for the customer + -- - proprietary extension data + -- ######################################################################################## + IssuingData ::= SEQUENCE { + + -- provider of the signature (RICS code) + securityProviderNum INTEGER (1..32000) OPTIONAL, + securityProviderIA5 IA5String OPTIONAL, + + -- issuer of the transport document if the issuer is different from the security provider + -- (RICS code) + issuerNum INTEGER (1..32000) OPTIONAL, + issuerIA5 IA5String OPTIONAL, + + -- issuing time stamp in UTC + -- number of year + issuingYear INTEGER (2016..2269), + -- number of the day in the year (1.1. = 1) + issuingDay INTEGER (1..366), + -- The number of the minutes of issue might be used in case of account + -- based ticketing with a delay of n minutes for the replication of central + -- booking data to the control devices (e.g. at SBB) + -- The time can be compared with the last synchronization time of + -- the control device + issuingTime INTEGER (0..1439) OPTIONAL, + + -- name of the issuer (E.g. short name mentioned in RICS code table) + issuerName UTF8String OPTIONAL, + + -- specimen indicates a test specimen not valid for travelling + specimen BOOLEAN, + + -- secure paper indicates that this barcode is issued with a secure paper ticket + -- to ensure the uniqueness of the ticket. This allows to use the same control + -- procedure as for e-tickets also for anonymous tickets + -- the double use of the ticket is in this case excluded by the secure paper + securePaperTicket BOOLEAN, + + -- indicates that the ticket is valid for traveling or still needs activation + activated BOOLEAN, + + -- currency of the price: ISO4217 currency codes + currency IA5String (SIZE(3)) DEFAULT "EUR", + + -- fraction of the prices included + currencyFract INTEGER (1..3) DEFAULT 2, + + -- PNR used by the issuer to identify the document + issuerPNR IA5String OPTIONAL, + + -- proprietary data defined bilaterally + extension ExtensionData OPTIONAL, + + -- location of sale in case of a sale on board of a train + -- numeric train number or alphanumeric id of the train where the ticket was sold + issuedOnTrainNum INTEGER OPTIONAL, + issuedOnTrainIA5 IA5String OPTIONAL, + -- line number + issuedOnLine INTEGER OPTIONAL, + + -- point of sale + pointOfSale GeoCoordinateType OPTIONAL + ,... + } + + -- ################################################################################### + -- data supporting the control process + -- - list of items which the traveler can use to identify himself or the unique + -- usage of the ticket + -- (card ids, parts or identity card numbers, credit card numbers,..) + -- - hints on the validation to be made on board + -- + -- ################################################################################### + ControlData ::= SEQUENCE { + + -- cards that can be used to identify the ticket holder + identificationByCardReference SEQUENCE OF CardReferenceType OPTIONAL, + + -- id-card id must be checked to identify the traveler + identificationByIdCard BOOLEAN, + + -- passport id must be checked to identify the traveler + identificationByPassportId BOOLEAN, + + -- other items which could be used to identify the ticket holder + -- (for future use, code list to be defined) + identificationItem INTEGER OPTIONAL, + + -- validation of the passport is required (e.g. in case of Eurail) + passportValidationRequired BOOLEAN, + + -- online validation of the ticket required + onlineValidationRequired BOOLEAN, + + -- percentage of the tickets to be validated in more detail + -- (i.e. via online check or detailed checks later-on) + randomDetailedValidationRequired INTEGER (0..99) OPTIONAL, + + -- manual validation of the traveler age required (in case of reductions) + ageCheckRequired BOOLEAN, + + -- manual validation of the travelers reduction card required (in case of reductions) + reductionCardCheckRequired BOOLEAN, + + -- controler info text + infoText UTF8String OPTIONAL, + + -- additional tickets that should be controlled + includedTickets SEQUENCE OF TicketLinkType OPTIONAL, + + -- proprietary data defined bilaterally + extension ExtensionData OPTIONAL + ,... + } + + -- ################################################################################ + -- Traveler data + -- these data do not include tariff details of the booked tariffs, + -- tariff data are included in the transport document details and might + -- have a reference to the traveler defined here. + -- - personal data of the travellers + -- - the index of the list can be used to identify the + -- traveler within other contexts (e.g. in assigned tariffs) + -- ################################################################################ + TravelerData ::= SEQUENCE { + -- traveler list + traveler SEQUENCE OF TravelerType OPTIONAL, + + -- ISO 639-1 coding of the language preferred for the traveler / ticket holder + preferredLanguage IA5String (SIZE(2)) OPTIONAL, + + -- name of the group in case of a group ticket + groupName UTF8String OPTIONAL + ,... + } + + -- #################################################################################### + -- the following part contains the different transport document specifications + -- #################################################################################### + + + -- #################################################################################### + -- reservations of seats , couchettes and berths + -- included are the data defined in: + -- - leaflet 918.1 for reservation data exchange + -- - a few additional data currently used by some railways via different interfaces + -- - information on trach an dplafoorm where the coach stops + -- - additional second coach for large groups + -- #################################################################################### + ReservationData ::= SEQUENCE { + + -- train number - numeric or alphanumeric + trainNum INTEGER OPTIONAL, + trainIA5 IA5String OPTIONAL, + + -- departure date in local time + -- number of the days calculated from the issuing date + departureDate INTEGER (-1..370) DEFAULT 0, + + + -- reservation reference according ton 918.1 in case ade via Hermes + referenceIA5 IA5String OPTIONAL, + referenceNum INTEGER OPTIONAL, + + -- organization responsible for the product definition + -- (RICS Code to be used as standard) + productOwnerNum INTEGER (1..32000) OPTIONAL, + productOwnerIA5 IA5String OPTIONAL, + + -- product id to identify the issued product codelist defined by the product owner + -- !!! productIdNum extended + productIdNum INTEGER (0..65535) OPTIONAL, + productIdIA5 IA5String OPTIONAL, + + -- service brand: code list https://uic.org/service-brand-code-list + serviceBrand INTEGER (0..32000) OPTIONAL, + serviceBrandAbrUTF8 UTF8String OPTIONAL, + serviceBrandNameUTF8 UTF8String OPTIONAL, + + -- service code list from 918.1 (seat couchette,..) + service ServiceType DEFAULT seat, + + -- code table used to encode stations + stationCodeTable CodeTableType DEFAULT stationUICReservation, + + -- origin station code + fromStationNum INTEGER (1..9999999) OPTIONAL, + fromStationIA5 IA5String OPTIONAL, + + -- destination station code + toStationNum INTEGER (1..9999999) OPTIONAL, + toStationIA5 IA5String OPTIONAL, + + -- origin station name + fromStationNameUTF8 UTF8String OPTIONAL, + + -- destination station name + toStationNameUTF8 UTF8String OPTIONAL, + + -- departure time + departureTime INTEGER (0..1439), + departureUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + + -- arrival date and time in local time + -- number of days counted from the departure date + -- !!! proposal for change: arrivalDate INTEGER (-1..20) DEFAULT 0, + arrivalDate INTEGER (-1..20) DEFAULT 0, + arrivalTime INTEGER (0..1439) OPTIONAL, + arrivalUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + -- should be omitted in case it is the same as for departure + + -- responsible carriers on the route + carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, + carrierIA5 SEQUENCE OF IA5String OPTIONAL, + + -- travel class + classCode TravelClassType DEFAULT second, + + -- service level code list from 918.1 + serviceLevel IA5String (SIZE(1..2)) OPTIONAL, + + -- places + places PlacesType OPTIONAL, + + -- additional places in a second coach + additionalPlaces PlacesType OPTIONAL, + + --bicycle places + bicyclePlaces PlacesType OPTIONAL, + + -- compartment details (open space, wheelchair,..) + compartmentDetails CompartmentDetailsType OPTIONAL, + + -- number of persons on the ticket without place numbers (on IRT) + numberOfOverbooked INTEGER (0..200) DEFAULT 0, + + -- description of berths + berth SEQUENCE OF BerthDetailData OPTIONAL, + + -- tariffs included (Adult, Children,... ) + tariff SEQUENCE OF TariffType OPTIONAL, + + -- type of the price (supplement,... ) + priceType PriceTypeType DEFAULT travelPrice, + + price INTEGER OPTIONAL, + + vatDetail SEQUENCE OF VatDetailType OPTIONAL, + + -- type of supplement - code list from 018.1 + typeOfSupplement INTEGER (0..9) DEFAULT 0, + + numberOfSupplements INTEGER (0..200) DEFAULT 0, + + -- luggage restrictions and registered luggage + -- in case the luggage restrictions are general and do not depend on the + -- ticket type they should not be included + luggage LuggageRestrictionType OPTIONAL, + + infoText UTF8String OPTIONAL, + + + -- bilaterally agreed proprietary extension + extension ExtensionData OPTIONAL + ,... + } + + -- ################################################################################# + -- details on the VAT included to be used in after sale processes + -- ################################################################################# + VatDetailType ::= SEQUENCE { + + -- ISO 3166 numeric country code + country INTEGER (1..999), + + -- 1/10th of a percent + percentage INTEGER (0..999), + + -- amount of VAT, the currency and the currency fraction is included in the issuing data + amount INTEGER OPTIONAL, + + -- european tax id of the company paying VAT + vatId IA5String OPTIONAL + + } + + + -- ################################################################################# + -- reservations of car carriage + -- included are the data defined in: + -- - leaflet 918.1 for reservation data exchange + -- - a few additional data currently used by some railways via different interfaces + -- ################################################################################# + CarCarriageReservationData ::= SEQUENCE { + + trainNum INTEGER OPTIONAL, + trainIA5 IA5String OPTIONAL, + + + -- loading / unloading of the car in local date and time + -- number of the days calculated from the issuing date + beginLoadingDate INTEGER (-1..370) DEFAULT 0, + beginLoadingTime INTEGER (0..1439) OPTIONAL, + endLoadingTime INTEGER (0..1439) OPTIONAL, + loadingUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + + + -- reservation reference according on 918.1 in case ade via Hermes + referenceIA5 IA5String OPTIONAL, + referenceNum INTEGER OPTIONAL, + + -- organization responsible for the product definition + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + productOwnerNum INTEGER (1..32000) OPTIONAL, + productOwnerIA5 IA5String OPTIONAL, + + -- product id to identify the issued product codelist defined by the product owner + -- !!! productIdNum extended + productIdNum INTEGER (0..65535) OPTIONAL, + productIdIA5 IA5String OPTIONAL, + + -- service brand: code list https://uic.org/service-brand-code-list + serviceBrand INTEGER (1..32000) OPTIONAL, + serviceBrandAbrUTF8 UTF8String OPTIONAL, + serviceBrandNameUTF8 UTF8String OPTIONAL, + + stationCodeTable CodeTableType DEFAULT stationUICReservation, + + fromStationNum INTEGER (1..9999999) OPTIONAL, + fromStationIA5 IA5String OPTIONAL, + + toStationNum INTEGER (1..9999999) OPTIONAL, + toStationIA5 IA5String OPTIONAL, + + fromStationNameUTF8 UTF8String OPTIONAL, + toStationNameUTF8 UTF8String OPTIONAL, + + coach IA5String OPTIONAL, + place IA5String OPTIONAL, + + compartmentDetails CompartmentDetailsType OPTIONAL, + + -- description of the car + numberPlate IA5String, + trailerPlate IA5String OPTIONAL, + carCategory INTEGER (0..9), + boatCategory INTEGER (0..6) OPTIONAL, + textileRoof BOOLEAN, + roofRackType RoofRackType DEFAULT norack, + + -- height of a roof rack in cm + roofRackHeight INTEGER (0..99) OPTIONAL, + + -- number of boats on a rack + attachedBoats INTEGER (0..2) OPTIONAL, + + -- number of biycles on a rack + attachedBicycles INTEGER (0..4) OPTIONAL, + + -- number of surf boards on a rack + attachedSurfboards INTEGER (0..5) OPTIONAL, + + -- reference to an entry on the loading list + loadingListEntry INTEGER (0..999) OPTIONAL, + loadingDeck LoadingDeckType DEFAULT upper, + + -- responsible carriers on the route (RICS codes) + carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, + carrierIA5 SEQUENCE OF IA5String OPTIONAL, + + tariff TariffType, + priceType PriceTypeType DEFAULT travelPrice, + + price INTEGER OPTIONAL, + + vatDetail SEQUENCE OF VatDetailType OPTIONAL, + + infoText UTF8String OPTIONAL, + extension ExtensionData OPTIONAL + ,... + } + + + -- ##################################################################################### + -- data for open tickets (NRT and group tickets) + -- included are the data defined in: + -- - the ticket layout (leaflet 918.8) + -- - the ticket bar code version 3 (leaflet 918.9) + -- - additional data based on 108.1 with some extensions as 108.1 + -- does not provide well structured data, + -- especially concerning regional validity + -- + -- ##################################################################################### + + OpenTicketData ::= SEQUENCE { + + -- reference must be given either in numeric or alphanumeric format + referenceNum INTEGER OPTIONAL, + referenceIA5 IA5String OPTIONAL, + + -- organization responsible for the product definition + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + productOwnerNum INTEGER (1..32000) OPTIONAL, + productOwnerIA5 IA5String OPTIONAL, + + -- product id to identify the issued product codelist defined by the product owner + -- !!! productIdNum extended + productIdNum INTEGER (0..65535) OPTIONAL, + productIdIA5 IA5String OPTIONAL, + + -- to support other ticket content (e.g. VDV, UTPF, V�V, CALYPSO) + -- issuer code using the default code table of the product owner + extIssuerId INTEGER OPTIONAL, + -- authorization id provided to the issuer by the product owner + issuerAutorizationId INTEGER OPTIONAL, + + -- ticket includes the return trip - should be set to false if it is not relevant (e.g. zones) + returnIncluded BOOLEAN, + + -- for tickets valid in regions without from or to stations no station is provided + stationCodeTable CodeTableType DEFAULT stationUIC, + fromStationNum INTEGER (1..9999999) OPTIONAL, + fromStationIA5 IA5String OPTIONAL, + + -- for tickets valid in regions without from or to stations no station is provided + toStationNum INTEGER (1..9999999) OPTIONAL, + toStationIA5 IA5String OPTIONAL, + + fromStationNameUTF8 UTF8String OPTIONAL, + toStationNameUTF8 UTF8String OPTIONAL, + + -- description for manual evaluation in case structured data are not available + validRegionDesc UTF8String OPTIONAL, + -- specification of the ordered sequence of valid regions + validRegion SEQUENCE OF RegionalValidityType OPTIONAL, + + -- return route description + -- the return route description can be omitted if it is identical to the + -- inversed outbound validRegion sequence + returnDescription ReturnRouteDescriptionType OPTIONAL, + + -- temporal validity data in local time of the location where the journey starts + -- number of days from issuing date + validFromDay INTEGER (-1..700) DEFAULT 0, + validFromTime INTEGER (0..1439) OPTIONAL, + validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + + -- number of days from valid-from date, 0 = first day of validity + validUntilDay INTEGER (-1..370) DEFAULT 0, + validUntilTime INTEGER (0..1439) OPTIONAL, + validUntilUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + -- should be omitted in case it is the same as for departure + + -- travel days of a ticket might be subject to a separate activation to be valid for traveling + -- here it is possible to list the activated days of the ticket: + -- list of activated days in case the entire ticket is not activated + -- the day is given by the number of days from the first day of validity + -- change in V2 1 -> 0..370 + -- 0 = first day of validity + activatedDay SEQUENCE OF INTEGER (0..370) OPTIONAL, + + classCode TravelClassType DEFAULT second, + + -- servicelevel code according to leaflet 918.1 to encode other products + -- (e.g. PREMIUM, ...) + serviceLevel IA5String (SIZE(1..2)) OPTIONAL, + + -- carriers involved in the transport (RICS codes) + -- the indication of carriers is mandatory on international routes, they can be + -- listed here but can also be included in viaDetails + carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, + carrierIA5 SEQUENCE OF IA5String OPTIONAL, + + + -- list of service brands for which the ticket is valid + -- in case the included service brands are listed all other brands are excluded + -- service brand: code list https://uic.org/service-brand-code-list + includedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, + + -- list of service brands for which the ticket is not valid + -- service brand: code list https://uic.org/service-brand-code-list + excludedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, + + tariffs SEQUENCE OF TariffType OPTIONAL, + + price INTEGER OPTIONAL, + + vatDetail SEQUENCE OF VatDetailType OPTIONAL, + + infoText UTF8String OPTIONAL, + + -- additional included open tickets + -- e.g. to include local city traffic on parts of a the route + includedAddOns SEQUENCE OF IncludedOpenTicketType OPTIONAL, + + -- in case the luggage restrictions are general and do not depend + -- on the ticket type they should not be included + luggage LuggageRestrictionType OPTIONAL, + + -- included or excluded transport modes + -- code list: EN 1545-1 (transport type code) + -- new data elements + includedTransportType SEQUENCE OF INTEGER (0..31) OPTIONAL, + excludedTransportType SEQUENCE OF INTEGER (0..31) OPTIONAL, + + extension ExtensionData OPTIONAL + ,... + } + + + + -- #################################################################################### + -- data for passes + -- included are the data defined in: + -- - the ticket layout (leaflet 918.8) + -- - the ticket bar code version 3 (leaflet 918.8) + -- #################################################################################### + PassData ::= SEQUENCE { + + -- reference must be given in numeric or alphanumeric format + referenceNum INTEGER OPTIONAL, + referenceIA5 IA5String OPTIONAL, + + -- organization responsible for the product definition + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + productOwnerNum INTEGER (1..32000) OPTIONAL, + productOwnerIA5 IA5String OPTIONAL, + + -- product id to identify the issued product codelist defined by the product owner + -- !!! productIdNum extended + productIdNum INTEGER (0..65535) OPTIONAL, + productIdIA5 IA5String OPTIONAL, + + -- type of the pass, code list provided by the product owner + -- in case of Eurail: + -- 1 = Interrail + -- 2 = Eurail + -- 3 = Eurail Global (all countries) + passType INTEGER (1..250) OPTIONAL, + + -- literal name of the pass + passDescription UTF8String OPTIONAL, + + classCode TravelClassType DEFAULT second, + + -- begin of validity (local time) + -- number of days from issuing date + validFromDay INTEGER (-1..700) DEFAULT 0, + validFromTime INTEGER (0..1439) OPTIONAL, + validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + + -- end of validity (local time) + -- number of days from valid from day, 0 = valid on valid-from-date + validUntilDay INTEGER (-1..370) DEFAULT 0, + validUntilTime INTEGER (0..1439) OPTIONAL, + validUntilUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + -- should be omitted in case it is the same as for departure + + + + -- additional validity periods and excluded time ranges + validityPeriodDetails ValidityPeriodDetailType OPTIONAL, + + -- max number of days of validity in case the valid from day is open + numberOfValidityDays INTEGER (0..370) OPTIONAL, + + -- max number of possible trips to be activated + numberOfPossibleTrips INTEGER (1..250) OPTIONAL, + numberOfDaysOfTravel INTEGER (1..250) OPTIONAL, + + -- list of activated days in case the entire ticket is not activated + -- the day is given by the number of days from the first day of validity + -- 0 = first day of validity + activatedDay SEQUENCE OF INTEGER (0..370) OPTIONAL, + + -- included countries, code table according to UIC leaflet 918.9 + countries SEQUENCE OF INTEGER (1..250) OPTIONAL, + + -- included carriers (RICS codes) + includedCarrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, + includedCarrierIA5 SEQUENCE OF IA5String OPTIONAL, + + -- excluded carriers (RICS codes) + excludedCarrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, + excludedCarrierIA5 SEQUENCE OF IA5String OPTIONAL, + + -- service brand: code list https://uic.org/service-brand-code-list + includedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, + excludedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, + + -- region description to cover local zones + validRegion SEQUENCE OF RegionalValidityType OPTIONAL, + + tariffs SEQUENCE OF TariffType OPTIONAL, + + price INTEGER OPTIONAL, + + vatDetail SEQUENCE OF VatDetailType OPTIONAL, + + infoText UTF8String OPTIONAL, + extension ExtensionData OPTIONAL + ,... + } + + ValidityPeriodDetailType ::= SEQUENCE { + validityPeriod SEQUENCE OF ValidityPeriodType OPTIONAL, + excludedTimeRange SEQUENCE OF TimeRangeType OPTIONAL + } + + ValidityPeriodType ::= SEQUENCE { + -- number of days from issuing date (local date) + validFromDay INTEGER (-1..700) DEFAULT 0, + validFromTime INTEGER (0..1439) OPTIONAL, + validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + + -- number of days from valid from day, 0 = valid on valid from date + validUntilDay INTEGER (-1..370) DEFAULT 0, + validUntilTime INTEGER (0..1439) OPTIONAL, + validUntilUTCOffset INTEGER (-60..60) OPTIONAL -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + -- should be omitted in case it is the same as for departure + + } + + TimeRangeType ::= SEQUENCE { + fromTime INTEGER (0..1439), + untilTime INTEGER (0..1439) + } + + -- ###################################################################################### + -- data for vouchers + -- included are quite basic further study is required + -- ###################################################################################### + VoucherData ::= SEQUENCE { + + -- reference must be given in numeric or alphanumeric format + referenceIA5 IA5String OPTIONAL, + referenceNum INTEGER OPTIONAL, + + -- organization responsible for the product definition + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + productOwnerNum INTEGER (1..32000) OPTIONAL, + productOwnerIA5 IA5String OPTIONAL, + + -- product id to identify the issued product codelist defined by the product owner + -- !!! productIdNum extended + productIdNum INTEGER (0..65535) OPTIONAL, + productIdIA5 IA5String OPTIONAL, + + -- begin of validity in UTC + -- number of year + validFromYear INTEGER (2016..2269), + -- number of the day in the year (1.1. = 1) + validFromDay INTEGER (0..370), + -- end of validity + -- number of year + validUntilYear INTEGER (2016..2269), + -- number of the day in the year (1.1. = 1) + validUntilDay INTEGER (0..370), + + value INTEGER DEFAULT 0, + + -- type of the voucher, code list defined by the product owner + type INTEGER (1..32000) OPTIONAL, + + infoText UTF8String OPTIONAL, + extension ExtensionData OPTIONAL + ,... + } + -- ################################################################################### + -- data for FIP tickets + -- included are data from the FIP ticket layout, + -- ################################################################################### + FIPTicketData ::= SEQUENCE { + + -- reference must be given in numeric or alphanumeric format + referenceIA5 IA5String OPTIONAL, + referenceNum INTEGER OPTIONAL, + + -- organization responsible for the product definition + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + productOwnerNum INTEGER (1..32000) OPTIONAL, + productOwnerIA5 IA5String OPTIONAL, + + -- product id to identify the issued product codelist defined by the product owner + -- !!! productIdNum extended + productIdNum INTEGER (0..65535) OPTIONAL, + productIdIA5 IA5String OPTIONAL, + + -- first day of validity in UTC + --- number of days from issuing date + validFromDay INTEGER (-1..700) DEFAULT 0, + -- last day of validity + -- number of days from valid from day, 0 = first day of validity + validUntilDay INTEGER (-1..370) DEFAULT 0, + + -- activated days: list of days for which the ticket is valid + -- the day is given by the number of days from the first day of validity + -- 0 = first day of validity + activatedDay SEQUENCE OF INTEGER (0..370) OPTIONAL, + + -- included carriers + carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, + carrierIA5 SEQUENCE OF IA5String OPTIONAL, + + -- number of travel days allowed + numberOfTravelDays INTEGER (1..200), + includesSupplements BOOLEAN, + + -- travel class + classCode TravelClassType DEFAULT second, + extension ExtensionData OPTIONAL + ,... + } + + -- ##################################################################################### + -- data station passage and access + -- ticket used to enter, exit or pass a station without travelling by train. + -- E.g. for staff working in a station. + -- ##################################################################################### + StationPassageData ::= SEQUENCE { + + -- reference must be given in numeric or alphanumeric format + referenceIA5 IA5String OPTIONAL, + referenceNum INTEGER OPTIONAL, + + -- organization responsible for the product definition + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + productOwnerNum INTEGER (1..32000) OPTIONAL, + productOwnerIA5 IA5String OPTIONAL, + + -- product id to identify the issued product codelist defined by the product owner + -- !!! productIdNum extended + productIdNum INTEGER (0..65535) OPTIONAL, + productIdIA5 IA5String OPTIONAL, + + productName UTF8String OPTIONAL, + + -- code table used to encode he stations + stationCodeTable CodeTableType DEFAULT stationUIC, + -- list of station where the passage is allowed + stationNum SEQUENCE OF INTEGER OPTIONAL, + stationIA5 SEQUENCE OF IA5String OPTIONAL, + -- station names + stationNameUTF8 SEQUENCE OF UTF8String OPTIONAL, + + -- list of areas in a station where the access is allowed + areaCodeNum SEQUENCE OF INTEGER OPTIONAL, + areaCodeIA5 SEQUENCE OF IA5String OPTIONAL, + -- area names + areaNameUTF8 SEQUENCE OF UTF8String OPTIONAL, + + -- begin of validity in local date and time + -- number of days from issuing date + validFromDay INTEGER (-1..700), + validFromTime INTEGER (0..1439) OPTIONAL, + validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + + -- end of validity + -- number of days from valid from day, 0 = first day of validity + validUntilDay INTEGER (-1..370) DEFAULT 0, + validUntilTime INTEGER (0..1439) OPTIONAL, + validUntilUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + -- should be omitted in case it is the same as for departure + + + -- number of days for station passage in case the number of days + -- is limited and less that the validity period + numberOfDaysValid INTEGER OPTIONAL, + + extension ExtensionData OPTIONAL + ,... + } + + -- ###################################################################################### + -- data for customer cards + -- included are data from: + -- - �BB requirements on card data + -- - DB Bahncard as HandyTicket + -- note: customer data are included in the traveler data structure + -- ###################################################################################### + CustomerCardData ::= SEQUENCE { + + -- customer details + -- optional, as there might be an anonymous cards + customer TravelerType OPTIONAL, + + -- card id might be numerical or alphanumerical + cardIdIA5 IA5String OPTIONAL, + cardIdNum INTEGER OPTIONAL, + + -- valid from date in UTC + -- number of year + validFromYear INTEGER (2016..2269), + --- number of the day in the year (1.1. = 1) + validFromDay INTEGER (0..370) OPTIONAL, + + --- number of year from valid from year onwards + validUntilYear INTEGER (0..250) DEFAULT 0, + --- number of the day in the year (1.1. = 1) + validUntilDay INTEGER (0..370) OPTIONAL, + + classCode TravelClassType OPTIONAL, + + -- code of the card type code list defined by the issuer + cardType INTEGER (1..1000) OPTIONAL, + + -- readable description of the card type + cardTypeDescr UTF8String OPTIONAL, + + -- customer status code + -- 1 = basic + -- 2 = premium + -- 3 = silver + -- 4 = gold + -- 5 = platinum + -- 6 = senator + -- > 50 - code table of the card issuer + customerStatus INTEGER OPTIONAL, + + -- readable customer status "e.g. gold", + customerStatusDescr IA5String OPTIONAL, + + -- list of included services, + -- 1 = Rail Plus + -- 2 = access to launch + -- > 50 code list of the issuer + includedServices SEQUENCE OF INTEGER OPTIONAL, + + extension ExtensionData OPTIONAL + ,... + } + + -- ###################################################################################### + -- data for customer cards + -- included are data from: + -- - DB parking ground reservation + -- ####################################################################################### + ParkingGroundData ::= SEQUENCE { + + -- booking reference + referenceIA5 IA5String OPTIONAL, + referenceNum INTEGER OPTIONAL, + + parkingGroundId IA5String, + + -- parking date in local date time + -- number of days from the issuing date + fromParkingDate INTEGER (-1..370), + -- number of days from the from parking date in case it is different from that date + untilParkingDate INTEGER (0..370) DEFAULT 0, + + -- organization responsible for the product definition + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + productOwnerNum INTEGER (1..32000) OPTIONAL, + productOwnerIA5 IA5String OPTIONAL, + + -- product id to identify the issued product codelist defined by the product owner + -- !!! productIdNum extended + productIdNum INTEGER (0..65535) OPTIONAL, + productIdIA5 IA5String OPTIONAL, + + -- code needed to access the parking lot + accessCode IA5String OPTIONAL, + + location UTF8String, + + stationCodeTable CodeTableType DEFAULT stationUIC, + -- in case the parking ground is associated with a station + stationNum INTEGER OPTIONAL, + stationIA5 UTF8String OPTIONAL, + + specialInformation UTF8String OPTIONAL, + entryTrack UTF8String OPTIONAL, + numberPlate IA5String OPTIONAL, + + price INTEGER OPTIONAL, + vatDetail SEQUENCE OF VatDetailType OPTIONAL, + + + extension ExtensionData OPTIONAL + ,... + } + + -- ####################################################################### + -- data for countermarks issued with group tickets + -- included are data from: + -- - version 3 bar code (leaflet 918.9) + -- - printed layout (leaflet 918.8) + -- ######################################################################## + CountermarkData ::= SEQUENCE { + + referenceIA5 IA5String OPTIONAL, + referenceNum INTEGER OPTIONAL, + + -- organization responsible for the product definition + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + productOwnerNum INTEGER (1..32000) OPTIONAL, + productOwnerIA5 IA5String OPTIONAL, + + -- product id to identify the issued product codelist defined by the product owner + -- !!! productIdNum extended + productIdNum INTEGER (0..65535) OPTIONAL, + productIdIA5 IA5String OPTIONAL, + + -- reference of the group ticket + ticketReferenceIA5 IA5String OPTIONAL, + ticketReferenceNum INTEGER OPTIONAL, + + -- sequential number of the countermark + numberOfCountermark INTEGER (1..200), + -- total number of countermarks + totalOfCountermarks INTEGER (1..200), + -- name of the group + groupName UTF8String, + + + stationCodeTable CodeTableType DEFAULT stationUIC, + + fromStationNum INTEGER (1..9999999) OPTIONAL, + fromStationIA5 IA5String OPTIONAL, + + toStationNum INTEGER (1..9999999) OPTIONAL, + toStationIA5 IA5String OPTIONAL, + + fromStationNameUTF8 UTF8String OPTIONAL, + toStationNameUTF8 UTF8String OPTIONAL, + + -- description for manual evaluation in case structured data are not available + validRegionDesc UTF8String OPTIONAL, + -- specification of the ordered sequence of valid regions + validRegion SEQUENCE OF RegionalValidityType OPTIONAL, + + + -- ticket includes the return trip + returnIncluded BOOLEAN, + -- retrurn route description + -- can be omitted if it is identical to the inversed outbound validRegion sequence + returnDescription ReturnRouteDescriptionType OPTIONAL, + + -- local date + -- number of days from issuing date + validFromDay INTEGER (-1..700) DEFAULT 0, + validFromTime INTEGER (0..1439) OPTIONAL, + validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + + + + -- number of days from valid from day, 0 = first day of validity + validUntilDay INTEGER (-1..370) DEFAULT 0, + validUntilTime INTEGER (0..1439) OPTIONAL, + validUntilUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + -- should be omitted in case it is the same as for departure + + + classCode TravelClassType DEFAULT second, + + -- valid carriers + carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, + carrierIA5 SEQUENCE OF IA5String OPTIONAL, + + -- service brands where the ticket is valid + -- in case this list is provided the ticket is invalid on all other service brands + -- service brand: code list https://uic.org/service-brand-code-list + includedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, + + -- service brands where the ticket is not valid + -- in case this list is provided the ticket is valid on all other service brands + excludedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, + + infoText UTF8String OPTIONAL, + + extension ExtensionData OPTIONAL + ,... + } + + + -- ########################################################################################### + -- generic non standard extension element + -- the generic non - standard element contains: + -- - an extension id to distinguish different extensions + -- - the extension data as binary data + -- proprietary extensions are by definition proprietary. This standard provides + -- the means to identify these extensions + -- within the data and to skip these data. + -- the evaluation of these data and the unique identification of the extensions + -- via the extension id is in the + -- responsibility of the railways which use these extensions. + -- ########################################################################################### + ExtensionData ::= SEQUENCE { + extensionId IA5String, + extensionData OCTET STRING + } + + -- ############################################################################################ + -- type definitions + -- ############################################################################################ + + -- ############################################################################################# + -- included open ticke for a part of the travel (e.g. local city trafic) + -- - data identically already included in the covering open ticket do not need to be + -- repeated here + -- - main source are the data required for included regional and city traffic tickets + -- ############################################################################################# + IncludedOpenTicketType ::= SEQUENCE { + + -- organization responsible for the product definition + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + productOwnerNum INTEGER (1..32000) OPTIONAL, + productOwnerIA5 IA5String OPTIONAL, + + -- product id to identify the issued product codelist defined by the product owner + -- !!! productIdNum extended + productIdNum INTEGER (0..65535) OPTIONAL, + productIdIA5 IA5String OPTIONAL, + + -- issuer code using the default code table of the product owner (today used e.g. by VDV) + externalIssuerId INTEGER OPTIONAL, + -- authorization id provided to the issuer by the poroduct owner (today used e.g. by VDV) + issuerAutorizationId INTEGER OPTIONAL, + + -- regional validity data + stationCodeTable CodeTableType DEFAULT stationUIC, + -- specification of the ordered sequence of valid regions, ordered in the direction of travel + validRegion SEQUENCE OF RegionalValidityType OPTIONAL, + + -- temporal validity data in local date and time + -- number of days from issuing date + validFromDay INTEGER (-1..700) DEFAULT 0, + validFromTime INTEGER (0..1439) OPTIONAL, + validFromUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + + + -- number of days from valid-from date, 0 = first day of validity + validUntilDay INTEGER (-1..370) DEFAULT 0, + validUntilTime INTEGER (0..1439) OPTIONAL, + validUntilUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + -- should be omitted in case it is the same as for departure + + + -- travel class to be given in case it differs from the class of the main ticket + classCode TravelClassType OPTIONAL, + -- servicelevel code according to leaflet 918.1 to encode other products (e.g. PREMIUM, ...) + -- to be provided in case it differs from the main ticket + serviceLevel IA5String (SIZE(1..2)) OPTIONAL, + + -- valid carriers (RICS codes) + carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, + carrierIA5 SEQUENCE OF IA5String OPTIONAL, + + -- service brands where the ticket is valid + -- in case this list is provided the ticket is invalid on all other service brands + -- service brand: code list https://uic.org/service-brand-code-list + includedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, + + -- service brands where the ticket is not valid + -- in case this list is provided the ticket is valid on all other service brands + excludedServiceBrands SEQUENCE OF INTEGER (1..32000) OPTIONAL, + + tariffs SEQUENCE OF TariffType OPTIONAL, + infoText UTF8String OPTIONAL, + + -- included or excluded transport modes + -- code list: EN 1545-1 (transport type code) + -- !!! new data elements + includedTransportType SEQUENCE OF INTEGER (0..31) OPTIONAL, + excludedTransportType SEQUENCE OF INTEGER (0..31) OPTIONAL, + + extension ExtensionData OPTIONAL + ,... + } + + -- ###################################################################################### + -- tariff data for open tickets + -- information included are: + -- - number of passengers + -- - optionally a link to the traveler data + -- ####################################################################################### + TariffType ::= SEQUENCE { + + -- number of passengers using the tariff + numberOfPassengers INTEGER (1..200) DEFAULT 1, + + -- type indication youth, adult, senior,.. + passengerType PassengerType OPTIONAL, + + -- age restrictions of the tariff + ageBelow INTEGER (1..64) OPTIONAL, + ageAbove INTEGER (1..128) OPTIONAL, + + + -- named traveler list + -- link to the traveler in case the travelers have to be named (e.g. Eurail passes) + -- the number indicates the position in the traveler list starting from 1 + -- change V2 0 -> 1.. + travelerid SEQUENCE OF INTEGER (1..254) OPTIONAL, + + -- restriction on country of residence + -- this tariff is restricted by the country of residence given in the traveler data + -- (e.g. Eurail tickets are not valid in the contry of residence) + restrictedToCountryOfResidence BOOLEAN, + + -- section in case the tariff applies to a part of the route only + restrictedToRouteSection RouteSectionType OPTIONAL, + + -- details on series according to leaflet 108.1 + seriesDataDetails SeriesDetailType OPTIONAL, + + -- tariff code + tariffIdNum INTEGER OPTIONAL, + tariffIdIA5 IA5String OPTIONAL, + + -- tariff description + tariffDesc UTF8String OPTIONAL, + + -- reduction cards applied (incl. discount cards, loyalty cards relevant for the tariff) + reductionCard SEQUENCE OF CardReferenceType OPTIONAL + ,... + } + + SeriesDetailType ::= SEQUENCE { + + -- data related to tariffs based on series according UIC leaflet 108.1 + -- supplying carrier according to UIC leaflet 108.1 (RICS code) + supplyingCarrier INTEGER (1..32000) OPTIONAL, + + -- offer identifier of the carrier according to UIC leaflet 108.1 + offerIdentification INTEGER (1..99) OPTIONAL, + + -- series of the carrier according to UIC leaflet 108.1 + series INTEGER OPTIONAL + } + + + RouteSectionType ::= SEQUENCE { + + stationCodeTable CodeTableType DEFAULT stationUIC, + fromStationNum INTEGER (1..9999999) OPTIONAL, + fromStationIA5 IA5String OPTIONAL, -- IA5 or Num not both + + toStationNum INTEGER (1..9999999) OPTIONAL, + toStationIA5 IA5String OPTIONAL, -- IA5 or Num not both + + fromStationNameUTF8 UTF8String OPTIONAL, + toStationNameUTF8 UTF8String OPTIONAL + } + + + -- ####################################################################################### + -- customer card reference + -- ####################################################################################### + CardReferenceType ::= SEQUENCE { + + -- issuer of the card + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + cardIssuerNum INTEGER (1..32000) OPTIONAL, + cardIssuerIA5 IA5String OPTIONAL, + + cardIdNum INTEGER OPTIONAL, + cardIdIA5 IA5String OPTIONAL, + + -- Name of the card e.g. "VISA-CARD" + cardName UTF8String OPTIONAL, + + -- type of the card, code list defined by the issuer + cardType INTEGER OPTIONAL, + + -- in case only the leading part of the card number is provided + leadingCardIdNum INTEGER OPTIONAL, + leadingCardIdIA5 IA5String OPTIONAL, + + + -- in case only the trailing part of the card number is provided + trailingCardIdNum INTEGER OPTIONAL, + trailingCardIdIA5 IA5String OPTIONAL + + ,... + } + + -- ####################################################################################### + -- traveler data + -- - traveler data might contain all traveler details which are independent + -- from the type of travel document + -- e.g. it can include the date of birth as this is part of the traveler + -- but not the indication "Senior" as this is tariff dependent + -- + -- ####################################################################################### + TravelerType ::= SEQUENCE { + + firstName UTF8String OPTIONAL, + secondName UTF8String OPTIONAL, + lastName UTF8String OPTIONAL, + idCard IA5String OPTIONAL, + passportId IA5String OPTIONAL, + title IA5String (SIZE(1..3)) OPTIONAL, + gender GenderType OPTIONAL, + + -- customer id might be numerical or alphanumerical + customerIdIA5 IA5String OPTIONAL, + customerIdNum INTEGER OPTIONAL, + + -- date of birth + -- number of year + yearOfBirth INTEGER (1901..2155) OPTIONAL, + monthOfBirth INTEGER (1..12) OPTIONAL, + dayOfBirthInMonth INTEGER (1..31) OPTIONAL, + + -- indicates the ticket holder/group leader in case of groups + ticketHolder BOOLEAN, + + passengerType PassengerType OPTIONAL, + + passengerWithReducedMobility BOOLEAN OPTIONAL, + + -- country of residence (numeric ISO country code) + -- to be used in case there product restrictions on the country of residence (e.g. Eurail passes) + countryOfResidence INTEGER (1..999) OPTIONAL, + + countryOfPassport INTEGER (1..999) OPTIONAL, + countryOfIdCard INTEGER (1..999) OPTIONAL, + + status SEQUENCE OF CustomerStatusType OPTIONAL + ,... + } + + CustomerStatusType ::= SEQUENCE { + + -- compagny providing the status, default is the issuer + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + statusProviderNum INTEGER (1..32000) OPTIONAL, + statusProviderIA5 IA5String OPTIONAL, + + -- customer status code + -- 1 = basic + -- 2 = premium + -- 3 = silver + -- 4 = gold + -- 5 = platinum + -- 6 = senator + -- > 50 - code table of the card issuer + customerStatus INTEGER OPTIONAL, + + -- customer status "gold" + customerStatusDescr IA5String OPTIONAL + } + + + ReturnRouteDescriptionType ::= SEQUENCE { + + fromStationNum INTEGER (1..9999999) OPTIONAL, + fromStationIA5 IA5String OPTIONAL, + + toStationNum INTEGER (1..9999999) OPTIONAL, + toStationIA5 IA5String OPTIONAL, + + fromStationNameUTF8 UTF8String OPTIONAL, + toStationNameUTF8 UTF8String OPTIONAL, + + -- description for manual evaluation in case structured data are not available + validReturnRegionDesc UTF8String OPTIONAL, + + -- specification of the ordered sequence of valid regions for the return trip + validReturnRegion SEQUENCE OF RegionalValidityType OPTIONAL + ,... + + } + + -- ###################################################################################### + -- regional validity of an open ticket + -- specification of the regional validity. + -- ###################################################################################### + + RegionalValidityType ::= CHOICE { + trainLink TrainLinkType, + viaStations ViaStationType, + zones ZoneType, + lines LineType, + polygone PolygoneType + ,... + } + + + + -- ####################################################################################### + -- train link data + -- includes a restriction of an open ticket valid only on a specific train + -- and date on a part of the route + -- ####################################################################################### + TrainLinkType ::= SEQUENCE { + + trainNum INTEGER OPTIONAL, + trainIA5 IA5String OPTIONAL, + + -- local date at the station where the train link starts + -- days from the issuing date onwards + travelDate INTEGER (-1..370), + departureTime INTEGER (0..1439), -- time in minutes + departureUTCOffset INTEGER (-60..60) OPTIONAL, -- offset in units of 15 minutes from local time to UTC + -- (UTC = local + offset * 15 Minutes) + + fromStationNum INTEGER (1..9999999) OPTIONAL, + fromStationIA5 IA5String OPTIONAL, + + toStationNum INTEGER (1..9999999) OPTIONAL, + toStationIA5 IA5String OPTIONAL, + + fromStationNameUTF8 UTF8String OPTIONAL, + toStationNameUTF8 UTF8String OPTIONAL + + } + + + + -- ###################################################################################### + -- regional validity using a set of lines + -- - based on data used in regional city trafic enviromnemnts + -- ###################################################################################### + LineType ::= SEQUENCE { + + -- local service provider / carrier within the zone + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + carrierNum INTEGER (1..32000) OPTIONAL, + carrierIA5 IA5String OPTIONAL, + + -- ids of the valid lines known by the local carriers on that line + lineId SEQUENCE OF INTEGER OPTIONAL, + + stationCodeTable CodeTableType DEFAULT stationUIC, + + -- in case the line must be entered via a specific station + -- (e.g. local city traffic at the end of a journey + -- starting from the main train station) + entryStationNum INTEGER (1..9999999) OPTIONAL, + entryStationIA5 IA5String OPTIONAL, + + -- in case the line must be left via a specific station + -- (e.g. local city trafic at the beginning of a journey + -- terminating at the main train station) + terminatingStationNum INTEGER (1..9999999) OPTIONAL, + terminatingStationIA5 IA5String OPTIONAL, + + -- code of the local city in case the line is part of regional city transport + -- code list of the local carrier + city INTEGER OPTIONAL + ,... + } + + + -- ################################################################################# + -- regional validity in a zone + -- - based on data used in regional city trafic enviromnemnts + -- ################################################################################# + ZoneType ::= SEQUENCE { + + -- local service provider / carrier within the zone + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + carrierNum INTEGER (1..32000) OPTIONAL, + carrierIA5 IA5String OPTIONAL, + + stationCodeTable CodeTableType DEFAULT stationUIC, + -- in case the zone must be entered via a specific station + -- (e.g. local city traffic at the end of a journey starting + -- from the main train station) + entryStationNum INTEGER (1..9999999) OPTIONAL, + entryStationIA5 IA5String OPTIONAL, + + -- in case the zone must be left via a specific station + -- (e.g. local city traffic at the beginning of a journey + -- terminating at the main train station) + terminatingStationNum INTEGER (1..9999999) OPTIONAL, + terminatingStationIA5 IA5String OPTIONAL, + + -- code of the local city in case the zone is part of regional + -- city transport code list of the local carrier + city INTEGER OPTIONAL, + + -- ids of the valid zones known by the local carriers in that zone + zoneId SEQUENCE OF INTEGER OPTIONAL, + + -- binary encoding of zones, encoding specification provided by + -- the local service provider + binaryZoneId OCTET STRING OPTIONAL, + + -- EU NUTS code for a region + nutsCode IA5String OPTIONAL + ,... + } + + + -- ################################################################################## + -- via station + -- includes a description of of the route by via stations. + -- Via stations follow the description in leaflet 108.1: + -- via stations can e mandatory to pass (but there does not need to be a + -- train stop at this stations): visible route description: "*station*" + -- there can be a list of alternative routes: + -- visible route description: "*(station1/station2)*" + -- there can also be alternative routes: + -- "*(station1*station2/station3*station4)*" although the + -- definition in 108.2 is not very precice on this option + -- ################################################################################### + ViaStationType ::= SEQUENCE { + + stationCodeTable CodeTableType DEFAULT stationUIC, + -- mandatory via station + stationNum INTEGER (1..9999999) OPTIONAL, + stationIA5 IA5String OPTIONAL, + + -- list of alternative routes, one of these has to be taken + alternativeRoutes SEQUENCE OF ViaStationType OPTIONAL, + + -- list of stations along the route + route SEQUENCE OF ViaStationType OPTIONAL, + border BOOLEAN, + + -- carrier responsible for the transport starting at this station (RICS-Code) + -- in case the carrier is included here it might be omitted + -- in the carrier list of the region data + carrierNum SEQUENCE OF INTEGER (1..32000) OPTIONAL, + carrierIA5 SEQUENCE OF IA5String OPTIONAL, + + -- the route id as series number as defined in 108.1 data + seriesId INTEGER OPTIONAL, + + -- route id of the route code list defined by the carrier on that route + routeId INTEGER OPTIONAL + ,... + } + + + PolygoneType ::= SEQUENCE { + firstEdge GeoCoordinateType, + edges SEQUENCE OF DeltaCoordinates + } + + + -- ########################################################################################### + -- TokenType provides an additional identifier + -- known use cases + -- - identified of the mobile phone for tickets linked with a specific phone (e.g. VDV standard) + -- ########################################################################################### + TokenType ::= SEQUENCE { + -- provider of the token + tokenProviderNum INTEGER OPTIONAL, + tokenProviderIA5 IA5String OPTIONAL, + + -- in case the provider has multiple tokens + tokenSpecification IA5String OPTIONAL, + token OCTET STRING + } + + -- ########################################################################################### + -- TicketLinkType is used to define a link from the ticket in the bar code to another ticket + -- (requirement from Eurail) + -- use cases + -- - DB Alleo (open ticket + reservation) + -- - reservation of trailer and car carriage and traveller reservation + -- - link between open ticket and bicycle reservations or pass + -- - open ticket and vouchers for meals + -- ########################################################################################### + TicketLinkType ::= SEQUENCE { + + -- data to reference the external ticket + -- reference must be given in numeric or alphanumeric format + referenceIA5 IA5String OPTIONAL, + referenceNum INTEGER OPTIONAL, + + issuerName UTF8String OPTIONAL, -- name of the issuer + + issuerPNR IA5String OPTIONAL, -- in case the ticket can also be identified via + -- the issuer PNR + + -- organization responsible for the product definition + -- (RICS Code / proprietary code in case no RICS code is defined, proprietary codes must ensure to be unique) + productOwnerNum INTEGER (1..32000) OPTIONAL, + productOwnerIA5 IA5String OPTIONAL, + + -- type of linked ticket + ticketType TicketType DEFAULT openTicket, + + -- type of link + linkMode LinkMode DEFAULT issuedTogether + ,... + } + + -- ############################################################################################ + -- code table used fort station codes + -- defines the code table used e.g. to define station code + -- - stationUIC = station codes as used in UIC leaflet 108.1 for open tickets + -- - stationUICReservation = station codes as used in Reservation leaflets 918.1 and 108.2 + -- ############################################################################################ + + CodeTableType ::= ENUMERATED { + -- standard UIC station code from MERITS (UIC country code + 5 digit local code) + stationUIC (0), + -- standard UIC station code for reservation + stationUICReservation (1), + -- future standard ERA station code + stationERA (2), + -- local carrier code list + -- e.g. in case of stations / stops of non-railways stops (city traffic) + localCarrierStationCodeTable (3), + + -- non standard code to be used within the issuer eco system only + -- not applicable for multi carrier travel documents + -- or in case issuer and carrier are different + proprietaryIssuerStationCodeTable (4) + + } + + + ServiceType ::= ENUMERATED { + seat (0), + couchette (1), + berth (2), + carcarriage (3) + } + + + PassengerType ::= ENUMERATED { + adult (0), + senior (1), + child (2), + youth (3), + dog (4), + bicycle (5), + freeAddonPassenger (6), + freeAddonChild (7) + ,... + } + + TicketType ::= ENUMERATED { + openTicket (0), + pass (1), + reservation (2), + carCarriageReservation (3) + ,... + } + + LinkMode ::= ENUMERATED { + issuedTogether (0), + onlyValidInCombination (1) + ,... + } + + + -- #################################################################################### + -- place data corresponding to leaflet 918.1 + -- placeString = place number ranges in case of groups + -- #################################################################################### + PlacesType ::= SEQUENCE { + coach IA5String OPTIONAL, + + -- printable place string ("15-18, 21, 22" ) + placeString IA5String OPTIONAL, + + -- printable place description + placeDescription UTF8String OPTIONAL, + + -- individual places + placeIA5 SEQUENCE OF IA5String OPTIONAL, + placeNum SEQUENCE OF INTEGER (1..254) OPTIONAL + } + + PriceTypeType ::= ENUMERATED { + noPrice (0), + reservationFee (1), + supplement (2), + travelPrice (3) + } + + BerthTypeType ::= ENUMERATED { + single (0), + special (1), + double (2), + t2 (3), + t3 (4), + t4 (5) + } + + CompartmentGenderType ::= ENUMERATED { + unspecified (0), + family (1), + female (2), + male (3), + mixed (4) + ,... + } + + GenderType ::= ENUMERATED { + unspecified (0), + female (1), + male (2), + other (3) + ,... + } + + TravelClassType ::= ENUMERATED { + notApplicable (0), + first (1), + second (2), + tourist (3), + comfort (4), + premium (5), + business (6), + all (7), + premiumFirst (8), + standardFirst (9), + premiumSecond (10), + standardSecond (11) + ,... + } + + -- ######################################################################################## + -- sleeper compartment types corresponding to leaflet 918.1 + -- ######################################################################################## + BerthDetailData ::= SEQUENCE { + berthType BerthTypeType, + numberOfBerths INTEGER (1..999), + gender CompartmentGenderType DEFAULT family + ,... + } + + -- #################################################################################### + -- compartment details corresponding to leaflet 918.1 + -- #################################################################################### + CompartmentDetailsType ::= SEQUENCE { + coachType INTEGER (1..99) OPTIONAL, + compartmentType INTEGER (1..99) OPTIONAL, + specialAllocation INTEGER (1..99) OPTIONAL, + coachTypeDescr UTF8String OPTIONAL, + compartmentTypeDescr UTF8String OPTIONAL, + specialAllocationDescr UTF8String OPTIONAL, + position CompartmentPositionType DEFAULT unspecified + ,... + } + + + -- ##################################################################################### + -- luggage restrictions + -- the basis for these data is week: + -- SCIC mentions a maximum of three pieces of hand luggage but does not includes + -- a definition of hand luggage + -- SCIC refers to special conditions on registered luggage, but SCIC NRT does + -- not contain definitions on that and UIC 108.1 does not + -- contain data structures for luggage + -- - current THALYS luggage restrictions + -- ##################################################################################### + LuggageRestrictionType ::= SEQUENCE { + -- allowed hand luggage pieces on this ticket (3 = default in current NRT tariff) + maxHandLuggagePieces INTEGER(0..99) DEFAULT 3, + -- allowed hand luggage pieces on this ticket (3 = default in current NRT tariff) + maxNonHandLuggagePieces INTEGER(0..99) DEFAULT 1, + registeredLuggage SEQUENCE OF RegisteredLuggageType OPTIONAL + ,... + + } + + RegisteredLuggageType ::= SEQUENCE { + -- id of the additional registered luggage + registrationId IA5String OPTIONAL, + -- maximum weight in kg + maxWeight INTEGER (1..99) OPTIONAL, + -- sum of length with and height in cm + maxSize INTEGER (1..300) OPTIONAL + ,... + + } + + -- ########################################################################################## + -- generic type for geo coordinates + -- ########################################################################################## + GeoCoordinateType ::= SEQUENCE { + geoUnit GeoUnitType DEFAULT milliDegree, + coordinateSystem GeoCoordinateSystemType DEFAULT wgs84, + -- separate hemishpere flag reduces the data size + hemisphereLongitude HemisphereLongitudeType DEFAULT north, + -- separate hemishpere flag reduces the data size + hemisphereLatitude HemisphereLatitudeType DEFAULT east, + longitude INTEGER, + latitude INTEGER, + accuracy GeoUnitType OPTIONAL + } + + DeltaCoordinates ::= SEQUENCE { + -- logitude difference to a reference point + longitude INTEGER, + -- latitude difference to a reference point + latitude INTEGER + } + + GeoCoordinateSystemType ::= ENUMERATED { + wgs84 (0), -- WGS 84 standard system + grs80 (1) -- (outdated) GRS 80 coordinate system + } + + GeoUnitType ::= ENUMERATED { + microDegree (0), -- approx. 11 cm on earth surface + tenthmilliDegree (1), -- 1 / 100000 degree is approx. 1.1 meter on earth surface + milliDegree (2), -- approx 110 meter on earth surface + centiDegree (3), + deciDegree (4) + } + + HemisphereLongitudeType ::= ENUMERATED { + north (0), + south (1) + } + + HemisphereLatitudeType ::= ENUMERATED { + east (0), + west (1) + } + + LoadingDeckType ::= ENUMERATED { + unspecified (0), + upper (1), + lower (2) + } + + CompartmentPositionType ::= ENUMERATED { + unspecified (0), + upperLevel (1), + lowerLevel (2) + } + + RoofRackType ::= ENUMERATED { + norack (0), + roofRailing (1), + luggageRack (2), + skiRack (3), + boxRack (4), + rackWithOneBox (5), + rackWithTwoBoxes (6), + bicycleRack (7), + otherRack (8) + ,... + } + +END \ No newline at end of file -- cgit v1.2.3