/*
* This file was generated by openASN.1 - an open source ASN.1 toolkit for java
*
* openASN.1 is Copyright (C) 2007 Clayton Hoss, Marc Weyland
*
* openASN.1 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* openASN.1 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with openASN.1. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.uic.barcode.ticket.api.test.testtickets;
import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8;
import org.uic.barcode.asn1.datatypesimpl.SequenceOfUnrestrictedLong;
import org.uic.barcode.ticket.api.asn.omv3.CardReferenceType;
import org.uic.barcode.ticket.api.asn.omv3.ControlData;
import org.uic.barcode.ticket.api.asn.omv3.CustomerStatusType;
import org.uic.barcode.ticket.api.asn.omv3.DocumentData;
import org.uic.barcode.ticket.api.asn.omv3.ExtensionData;
import org.uic.barcode.ticket.api.asn.omv3.IncludedOpenTicketType;
import org.uic.barcode.ticket.api.asn.omv3.IssuingData;
import org.uic.barcode.ticket.api.asn.omv3.LinkMode;
import org.uic.barcode.ticket.api.asn.omv3.OpenTicketData;
import org.uic.barcode.ticket.api.asn.omv3.PassengerType;
import org.uic.barcode.ticket.api.asn.omv3.RegionalValidityType;
import org.uic.barcode.ticket.api.asn.omv3.RegisteredLuggageType;
import org.uic.barcode.ticket.api.asn.omv3.RouteSectionType;
import org.uic.barcode.ticket.api.asn.omv3.SequenceOfCardReferenceType;
import org.uic.barcode.ticket.api.asn.omv3.SequenceOfCustomerStatusType;
import org.uic.barcode.ticket.api.asn.omv3.SequenceOfDocumentData;
import org.uic.barcode.ticket.api.asn.omv3.SequenceOfExtensionData;
import org.uic.barcode.ticket.api.asn.omv3.SequenceOfIncludedOpenTicketType;
import org.uic.barcode.ticket.api.asn.omv3.SequenceOfRegionalValidityType;
import org.uic.barcode.ticket.api.asn.omv3.SequenceOfRegisteredLuggageType;
import org.uic.barcode.ticket.api.asn.omv3.SequenceOfTariffType;
import org.uic.barcode.ticket.api.asn.omv3.SequenceOfTicketLinkType;
import org.uic.barcode.ticket.api.asn.omv3.SequenceOfTravelerType;
import org.uic.barcode.ticket.api.asn.omv3.SequenceOfVatDetail;
import org.uic.barcode.ticket.api.asn.omv3.StationPassageData;
import org.uic.barcode.ticket.api.asn.omv3.TariffType;
import org.uic.barcode.ticket.api.asn.omv3.TicketDetailData;
import org.uic.barcode.ticket.api.asn.omv3.TicketLinkType;
import org.uic.barcode.ticket.api.asn.omv3.TicketType;
import org.uic.barcode.ticket.api.asn.omv3.TokenType;
import org.uic.barcode.ticket.api.asn.omv3.TravelClassType;
import org.uic.barcode.ticket.api.asn.omv3.TravelerData;
import org.uic.barcode.ticket.api.asn.omv3.TravelerType;
import org.uic.barcode.ticket.api.asn.omv3.UicRailTicketData;
import org.uic.barcode.ticket.api.asn.omv3.VatDetailType;
import org.uic.barcode.ticket.api.asn.omv3.ZoneType;
import org.uic.barcode.ticket.api.asn.omv3.LuggageRestrictionType;
public class OpenLuggageRestrictionTestTicketV3 {
public static UicRailTicketData getUicTestTicket() {
UicRailTicketData ticket = new UicRailTicketData();
populateTicket(ticket);
return ticket;
}
/*
value UicRailTicketData ::= {
issuingDetail {
issuingYear 2018,
issuingDay 1,
issuingTime 600,
specimen TRUE,
securePaperTicket FALSE,
activated TRUE,
currency "EUR",
currencyFract 2,
issuerPNR "issuerTestPNR",
issuedOnLine 12
},
travelerDetail {
traveler {
{
firstName "John",
secondName "Dow",
idCard "12345",
ticketHolder TRUE,
status {
{
customerStatusDescr "senior"
}
}
}
},
groupName "myGroup"
},
transportDocument {
{
token {
tokenProviderIA5 "VDV",
token '82DA'H
},
ticket openTicket : {
returnIncluded FALSE,
stationCodeTable stationUIC,
validFromDay 0,
validUntilDay 0,
classCode first,
vatDetail {
{
country 80,
percentage 70,
amount 10,
vatId "IUDGTE"
}
},
infoText "openTicketInfo",
includedAddOns {
{
productOwnerNum 1080,
stationCodeTable stationUIC,
validRegion {
zones : {
stationCodeTable stationUIC,
zoneId {
100
}
}
},
validFromDay 0,
validFromTime 1000,
validUntilDay 1,
validUntilTime 1000,
classCode second,
tariffs {
{
numberOfPassengers 2,
passengerType adult,
restrictedToCountryOfResidence FALSE,
restrictedToRouteSection {
stationCodeTable stationUIC,
fromStationNum 8000001,
toStationNum 8010000
}
}
},
infoText "included ticket"
}
},
luggage {
maxHandLuggagePieces 2,
maxNonHandLuggagePieces 1,
registeredLuggage {
{
registrationId "IODHUV",
maxWeight 20,
maxSize 100
},
{
registrationId "XXDHUV",
maxWeight 21,
maxSize 101
}
}
}
}
},
{
ticket stationPassage : {
productName "passage",
stationCodeTable stationUIC,
stationNameUTF8 {
"Amsterdam"
},
validFromDay 0,
validUntilDay 0,
numberOfDaysValid 123
}
}
},
controlDetail {
identificationByCardReference {
{
trailingCardIdNum 100
}
},
identificationByIdCard FALSE,
identificationByPassportId FALSE,
passportValidationRequired FALSE,
onlineValidationRequired FALSE,
ageCheckRequired FALSE,
reductionCardCheckRequired FALSE,
infoText "cd",
includedTickets {
{
referenceIA5 "UED12435867",
issuerName "OEBB",
issuerPNR "PNR",
productOwnerIA5 "test",
ticketType pass,
linkMode onlyValidInCombination
}
}
},
extension {
{
extensionId "1",
extensionData '82DA'H
},
{
extensionId "2",
extensionData '83DA'H
}
}
}
*/
public static String getEncodingHex() {
return
"7804404004B14374F3E7D72F2A9979F4A13A90086280B4001044A6F686"
+ "E03446F770562C99B46B01106E797769DFC81DB5E51DC9BDD5C00940"
+ "75A2560282DA1000000101E0101C4F11804281A4D5891EA450E6F706"
+ "56E5469636B6574496E666F0140AD06021B8090020080B23E8013E81"
+ "00B10008143D09003D1C8787B4B731B63AB232B2103A34B1B5B2BA28"
+ "202706933E248AB58998DC1AC588922AD62864120220103B830B9B9B"
+ "0B3B28084A0B6B9BA32B93230B696F017B4C0200805900026364015B"
+ "85D58B118B268CDAB86CDC113D1509080E84EA409D32F3E850201620"
+ "505B402C80A0F680";
}
private static void populateTicket(UicRailTicketData ticket) {
ticket.setControlDetail(new ControlData());
populate(ticket.getControlDetail());
ticket.setIssuingDetail(new IssuingData());
populateIssuingData(ticket.getIssuingDetail());
TravelerData td = new TravelerData();
populateTravelerData(td);
ticket.setTravelerDetail(td);
SequenceOfDocumentData ds = new SequenceOfDocumentData();
//OpenTicket
DocumentData do1 = new DocumentData();
addOpenTicketData(do1);
ds.add(do1);
//StationPassage
DocumentData do2 = new DocumentData();
addStationPassage(do2);
ds.add(do2);
ticket.setTransportDocument(ds);
SequenceOfExtensionData ed = new SequenceOfExtensionData();
populateExtensionSequence(ed);
ticket.setExtension(ed);
}
private static void addStationPassage(DocumentData dd) {
TicketDetailData tdd = new TicketDetailData();
StationPassageData sp = new StationPassageData();
sp.setProductName("passage");
sp.setValidFromDay(0L);
sp.setNumberOfDaysValid(123L);
SequenceOfStringUTF8 ss = new SequenceOfStringUTF8();
ss.add("Amsterdam");
sp.setStationNameUTF8(ss);
tdd.setStationPassage(sp);
dd.setTicket(tdd);
}
/*
*
* returnIncluded FALSE
,classCode first
,vatDetail {
{ country 80
,percentage 70
,amount 10
,vatId "IUDGTE"
}
}
,infoText "openTicketInfo"
*/
private static void addOpenTicketData(DocumentData dd) {
TokenType to = new TokenType();
to.setTokenProviderIA5("VDV");
byte[] ba = { (byte) 0x82, (byte) 0xDA };
to.setToken(ba);
dd.setToken(to);
TicketDetailData tdd = new TicketDetailData();
OpenTicketData otd = new OpenTicketData();
otd.setInfoText("openTicketInfo");
otd.setClassCode(TravelClassType.first);
otd.setReturnIncluded(false);
otd.setIncludedAddOns(new SequenceOfIncludedOpenTicketType());
otd.getIncludedAddOns().add(getIncludedOpenTicket());
otd.setVatDetails(new SequenceOfVatDetail());
otd.getVatDetails().add(getVatDetail());
otd.setLuggage(getLuggage());
tdd.setOpenTicket(otd);
dd.setTicket(tdd);
}
private static LuggageRestrictionType getLuggage() {
LuggageRestrictionType l = new LuggageRestrictionType();
l.setMaxHandLuggagePieces(2L);
l.setMaxNonHandLuggagePieces(1L);
l.setRegisteredLuggage(getRegisteredLuggage());
return l;
}
private static SequenceOfRegisteredLuggageType getRegisteredLuggage() {
SequenceOfRegisteredLuggageType sl = new SequenceOfRegisteredLuggageType();
sl.add(getRegisteredLuggage1());
sl.add(getRegisteredLuggage2());
return sl;
}
private static RegisteredLuggageType getRegisteredLuggage1() {
RegisteredLuggageType rl = new RegisteredLuggageType();
rl.setMaxSize(100L);
rl.setMaxWeight(20L);
rl.setRegistrationId("IODHUV");
return rl;
}
private static RegisteredLuggageType getRegisteredLuggage2() {
RegisteredLuggageType rl = new RegisteredLuggageType();
rl.setMaxSize(101L);
rl.setMaxWeight(21L);
rl.setRegistrationId("XXDHUV");
return rl;
}
private static VatDetailType getVatDetail() {
VatDetailType v = new VatDetailType();
v.setAmount(10L);
v.setCountry(80L);
v.setPercentage(70L);
v.setVatId("IUDGTE");
return v;
}
/*
{ productOwnerNum 1080
,validRegion { zones : { zoneId { 100 } } }
,validFromDay 0
,validFromTime 1000
,validUntilDay 1
,validUntilTime 1000
,classCode second
,tariffs {
{ numberOfPassengers 2
,passengerType adult
,restrictedToCountryOfResidence FALSE
,restrictedToRouteSection { fromStationNum 8000001 , toStationNum 8010000 }
}
}
,infoText "included ticket"
}
*/
private static IncludedOpenTicketType getIncludedOpenTicket() {
IncludedOpenTicketType t = new IncludedOpenTicketType();
t.setClassCode(TravelClassType.second);
t.setInfoText("included ticket");
t.setProductOwnerNum(1080L);
t.setValidRegion(new SequenceOfRegionalValidityType());
t.getValidRegion().add(getZone());
t.setValidFromDay(0L);
t.setValidFromTime(1000L);
t.setValidUntilDay(1L);
t.setValidUntilTime(1000L);
t.setTariffs(new SequenceOfTariffType());
t.getTariffs().add(getTariff());
return t;
}
private static RegionalValidityType getZone() {
RegionalValidityType r = new RegionalValidityType();
ZoneType z = new ZoneType();
z.setZoneId(new SequenceOfUnrestrictedLong());
z.getZoneId().add(100L);
r.setZones(z);
return r;
}
private static void populateTravelerData(TravelerData td) {
td.setGroupName("myGroup");
SequenceOfTravelerType trs = new SequenceOfTravelerType();
TravelerType tr = new TravelerType();
tr.setIdCard("12345");
tr.setFirstName("John");
tr.setSecondName("Dow");
tr.setTicketHolder(true);
SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType();
CustomerStatusType cst = new CustomerStatusType();
cst.setCustomerStatusDescr("senior");
ts.add(cst);
tr.setStatus(ts);
trs.add(tr);
td.setTraveler(trs);
}
/*
*/
private static void populateIssuingData(IssuingData issuingDetail) {
issuingDetail.setIssuingYear(2018L);
issuingDetail.setIssuingDay(1L);
issuingDetail.setIssuingTime(600L);
issuingDetail.setIssuerPNR("issuerTestPNR");
issuingDetail.setSpecimen(true);
issuingDetail.setSecurePaperTicket(false);
issuingDetail.setActivated(true);
issuingDetail.setIssuedOnLine(12L);
}
private static void populateExtensionSequence(SequenceOfExtensionData ed) {
ExtensionData ed1 = new ExtensionData();
ed1.setExtensionId("1");
byte[] ba1 = { (byte) 0x82, (byte) 0xDA };
ed1.setExtensionData(ba1);
ExtensionData ed2 = new ExtensionData();
ed2.setExtensionId("2");
byte[] ba2 = { (byte) 0x83, (byte) 0xDA };
ed2.setExtensionData(ba2);
ed.add(ed1);
ed.add(ed2);
}
private static void populate(ControlData controlDetail) {
controlDetail.infoText = "cd";
controlDetail.setAgeCheckRequired(false);
controlDetail.setIdentificationByIdCard(false);
controlDetail.setIdentificationByPassportId(false);
controlDetail.setOnlineValidationRequired(false);
controlDetail.setPassportValidationRequired(false);
controlDetail.setReductionCardCheckRequired(false);
controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType());
controlDetail.getIdentificationByCardReference().add(populateCardRefrence());
SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType();
populateLinkedTickets(sit);
controlDetail.setIncludedTickets(sit);
}
/*
*
*/
private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) {
TicketLinkType tlt = new TicketLinkType();
tlt.productOwnerIA5="test";
tlt.setTicketType(TicketType.pass);
tlt.setIssuerPNR("PNR");
tlt.setReferenceIA5("UED12435867");
tlt.setLinkMode(LinkMode.onlyValidInCombination);
tlt.setIssuerName("OEBB");
sequenceOfTicketLinkType.add(tlt);
}
/*
{
trailingCardIdNum 100
}
*/
private static CardReferenceType populateCardRefrence() {
CardReferenceType cr = new CardReferenceType();
cr.setTrailingCardIdNum(100L);
return cr;
}
private static TariffType getTariff() {
TariffType t = new TariffType();
t.setNumberOfPassengers(2L);
t.setPassengerType(PassengerType.adult);
t.setRestrictedToRouteSection(getRouteSection());
t.setRestrictedToCountryOfResidence(false);
return t;
}
private static RouteSectionType getRouteSection() {
RouteSectionType r = new RouteSectionType();
r.setFromStationNum(8000001L);
r.setToStationNum(8010000L);
return r;
}
}