From e023e674020f1a435f7b8c8b9276704f576ea6e5 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Mon, 29 Mar 2021 14:08:45 +0200 Subject: structure change 1 --- .../ticket/api/utils/Api2OpenAsnEncoder.java | 2315 -------------------- .../ticket/api/utils/Api2OpenAsnEncoderV2.java | 2296 ------------------- .../barcode/ticket/api/utils/DateTimeUtils.java | 239 -- .../ticket/api/utils/OpenAsn2ApiDecoder.java | 2222 ------------------- .../ticket/api/utils/OpenAsn2ApiDecoderV2.java | 2250 ------------------- .../barcode/ticket/api/utils/UicEncoderUtils.java | 514 ----- src/org/uic/barcode/ticket/api/utils/package.html | 7 - 7 files changed, 9843 deletions(-) delete mode 100644 src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java delete mode 100644 src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoderV2.java delete mode 100644 src/org/uic/barcode/ticket/api/utils/DateTimeUtils.java delete mode 100644 src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java delete mode 100644 src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoderV2.java delete mode 100644 src/org/uic/barcode/ticket/api/utils/UicEncoderUtils.java delete mode 100644 src/org/uic/barcode/ticket/api/utils/package.html (limited to 'src/org/uic/barcode/ticket/api/utils') diff --git a/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java b/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java deleted file mode 100644 index 3f781ef..0000000 --- a/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java +++ /dev/null @@ -1,2315 +0,0 @@ -/* - * - */ -package org.uic.barcode.ticket.api.utils; - -import java.util.Collection; -import java.util.Date; - -import org.uic.barcode.asn1.datatypes.Asn1BigInteger; -import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; -import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; -import org.uic.barcode.asn1.datatypesimpl.SequenceOfUnrestrictedLong; -import org.uic.barcode.ticket.EncodingFormatException; -import org.uic.barcode.ticket.api.asn.omv1.BerthDetailData; -import org.uic.barcode.ticket.api.asn.omv1.BerthTypeType; -import org.uic.barcode.ticket.api.asn.omv1.CarCarriageReservationData; -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.CodeTableType; -import org.uic.barcode.ticket.api.asn.omv1.CompartmentDetailsType; -import org.uic.barcode.ticket.api.asn.omv1.CompartmentGenderType; -import org.uic.barcode.ticket.api.asn.omv1.ConfirmationTypeType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CountermarkData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerCardData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DelayConfirmation; -import org.uic.barcode.ticket.api.asn.omv1.DeltaCoordinates; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.FIPTicketData; -import org.uic.barcode.ticket.api.asn.omv1.GenderType; -import org.uic.barcode.ticket.api.asn.omv1.GeoCoordinateSystemType; -import org.uic.barcode.ticket.api.asn.omv1.GeoCoordinateType; -import org.uic.barcode.ticket.api.asn.omv1.GeoUnitType; -import org.uic.barcode.ticket.api.asn.omv1.HemisphereLatitudeType; -import org.uic.barcode.ticket.api.asn.omv1.HemisphereLongitudeType; -import org.uic.barcode.ticket.api.asn.omv1.IncludedOpenTicketType; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.LineType; -import org.uic.barcode.ticket.api.asn.omv1.LinkMode; -import org.uic.barcode.ticket.api.asn.omv1.LoadingDeckType; -import org.uic.barcode.ticket.api.asn.omv1.LuggageRestrictionType; -import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; -import org.uic.barcode.ticket.api.asn.omv1.ParkingGroundData; -import org.uic.barcode.ticket.api.asn.omv1.PassData; -import org.uic.barcode.ticket.api.asn.omv1.PassengerType; -import org.uic.barcode.ticket.api.asn.omv1.PlacesType; -import org.uic.barcode.ticket.api.asn.omv1.PolygoneType; -import org.uic.barcode.ticket.api.asn.omv1.PriceTypeType; -import org.uic.barcode.ticket.api.asn.omv1.RegionalValidityType; -import org.uic.barcode.ticket.api.asn.omv1.RegisteredLuggageType; -import org.uic.barcode.ticket.api.asn.omv1.ReservationData; -import org.uic.barcode.ticket.api.asn.omv1.ReturnRouteDescriptionType; -import org.uic.barcode.ticket.api.asn.omv1.RoofRackType; -import org.uic.barcode.ticket.api.asn.omv1.RouteSectionType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfBerthDetailData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCarrierNum; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCountries; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDeltaCoordinates; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfIncludedOpenTicketType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfPlaceNum; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfRegionalValidityType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfRegisteredLuggageType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfServiceBrands; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTariffType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerId; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfViaStationType; -import org.uic.barcode.ticket.api.asn.omv1.SeriesDetailType; -import org.uic.barcode.ticket.api.asn.omv1.ServiceType; -import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; -import org.uic.barcode.ticket.api.asn.omv1.TariffType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TicketType; -import org.uic.barcode.ticket.api.asn.omv1.TimeRangeType; -import org.uic.barcode.ticket.api.asn.omv1.TokenType; -import org.uic.barcode.ticket.api.asn.omv1.TrainLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; -import org.uic.barcode.ticket.api.asn.omv1.ValidityPeriodDetailType; -import org.uic.barcode.ticket.api.asn.omv1.ValidityPeriodType; -import org.uic.barcode.ticket.api.asn.omv1.VatDetailType; -import org.uic.barcode.ticket.api.asn.omv1.ViaStationType; -import org.uic.barcode.ticket.api.asn.omv1.VoucherData; -import org.uic.barcode.ticket.api.asn.omv1.ZoneType; -import org.uic.barcode.ticket.api.spec.IBerth; -import org.uic.barcode.ticket.api.spec.ICarCarriageReservation; -import org.uic.barcode.ticket.api.spec.ICardReference; -import org.uic.barcode.ticket.api.spec.ICompartmentDetails; -import org.uic.barcode.ticket.api.spec.ICompartmentGenderType; -import org.uic.barcode.ticket.api.spec.IControlDetail; -import org.uic.barcode.ticket.api.spec.ICounterMark; -import org.uic.barcode.ticket.api.spec.ICustomerCard; -import org.uic.barcode.ticket.api.spec.ICustomerStatusDescription; -import org.uic.barcode.ticket.api.spec.IDelayConfirmation; -import org.uic.barcode.ticket.api.spec.IDocumentData; -import org.uic.barcode.ticket.api.spec.IExtension; -import org.uic.barcode.ticket.api.spec.IFipTicket; -import org.uic.barcode.ticket.api.spec.IGeoCoordinate; -import org.uic.barcode.ticket.api.spec.IGeoCoordinateSystemType; -import org.uic.barcode.ticket.api.spec.IGeoUnitType; -import org.uic.barcode.ticket.api.spec.IHemisphereLatitudeType; -import org.uic.barcode.ticket.api.spec.IHemisphereLongitudeType; -import org.uic.barcode.ticket.api.spec.IIncludedOpenTicket; -import org.uic.barcode.ticket.api.spec.IIssuingDetail; -import org.uic.barcode.ticket.api.spec.ILine; -import org.uic.barcode.ticket.api.spec.ILinkMode; -import org.uic.barcode.ticket.api.spec.ILoadingDeckType; -import org.uic.barcode.ticket.api.spec.ILuggageRestriction; -import org.uic.barcode.ticket.api.spec.IOpenTicket; -import org.uic.barcode.ticket.api.spec.IParkingGround; -import org.uic.barcode.ticket.api.spec.IPass; -import org.uic.barcode.ticket.api.spec.IPlaces; -import org.uic.barcode.ticket.api.spec.IPolygone; -import org.uic.barcode.ticket.api.spec.IPriceTypeType; -import org.uic.barcode.ticket.api.spec.IRegionalValidity; -import org.uic.barcode.ticket.api.spec.IRegisteredLuggage; -import org.uic.barcode.ticket.api.spec.IReservation; -import org.uic.barcode.ticket.api.spec.IReturnRouteDescription; -import org.uic.barcode.ticket.api.spec.IRoofRackType; -import org.uic.barcode.ticket.api.spec.IRouteSection; -import org.uic.barcode.ticket.api.spec.ISeriesDataDetails; -import org.uic.barcode.ticket.api.spec.IServiceType; -import org.uic.barcode.ticket.api.spec.IStationCodeTable; -import org.uic.barcode.ticket.api.spec.IStationPassage; -import org.uic.barcode.ticket.api.spec.ITariff; -import org.uic.barcode.ticket.api.spec.ITicketLink; -import org.uic.barcode.ticket.api.spec.ITicketType; -import org.uic.barcode.ticket.api.spec.ITimeRange; -import org.uic.barcode.ticket.api.spec.IToken; -import org.uic.barcode.ticket.api.spec.ITrainLink; -import org.uic.barcode.ticket.api.spec.ITravelClassType; -import org.uic.barcode.ticket.api.spec.ITraveler; -import org.uic.barcode.ticket.api.spec.ITravelerDetail; -import org.uic.barcode.ticket.api.spec.IUicRailTicket; -import org.uic.barcode.ticket.api.spec.IValidityDetails; -import org.uic.barcode.ticket.api.spec.IValidityRange; -import org.uic.barcode.ticket.api.spec.IVatDetail; -import org.uic.barcode.ticket.api.spec.IViaStation; -import org.uic.barcode.ticket.api.spec.IVoucher; -import org.uic.barcode.ticket.api.spec.IZone; - -/** - * The Class Api2OpenAsnEncoder. - */ -public class Api2OpenAsnEncoder { - - - /** - * encode to asn1 model. - * - * @param uicTicket the uic ticket - * @return the encoded byte array - * @throws EncodingFormatException the encoding format exception - */ - public byte[] encode(IUicRailTicket uicTicket) throws EncodingFormatException { - - UicRailTicketData asnUicRailTicketData = populateToAsn1Model(uicTicket); - - return asnUicRailTicketData.encode(); - - } - - - - /** - * Populate asn1 model. - * - * @param uicTicket the uic ticket - * @return the org.uic.ticket.asn.om. uic rail ticket data - * @throws EncodingFormatException the encoding format exception - */ - public UicRailTicketData populateToAsn1Model(IUicRailTicket uicTicket) throws EncodingFormatException { - - UicRailTicketData asnTicket = new UicRailTicketData(); - - if (uicTicket.getIssuerDetails() != null) { - asnTicket.setIssuingDetail(encodeIssuingDetails(uicTicket.getIssuerDetails())); - } - - - if (uicTicket.getControlDetails() != null) { - asnTicket.setControlDetail(encodeControlDetails(uicTicket.getControlDetails(), uicTicket.getIssuerDetails().getIssuingDate())); - } - - - if (uicTicket.getExtensions() != null && !uicTicket.getExtensions().isEmpty()){ - - SequenceOfExtensionData asnList = new SequenceOfExtensionData(); - for (IExtension extension : uicTicket.getExtensions()){ - ExtensionData asnExtension = encodeExtension(extension); - if (asnExtension!= null) { - asnList.add(asnExtension); - } - } - if (!asnList.isEmpty()){ - asnTicket.setExtension(asnList); - } - - - } - - - if (uicTicket.getTravelerDetails() != null) { - asnTicket.setTravelerDetail(encodeTravelers(uicTicket.getTravelerDetails(),uicTicket.getIssuerDetails().getIssuingDate() )); - } - - if (uicTicket.getDocumentData() != null && !uicTicket.getDocumentData().isEmpty()) { - - SequenceOfDocumentData documents = new SequenceOfDocumentData(); - - for (IDocumentData document : uicTicket.getDocumentData()){ - - DocumentData asnDocument = null; - - if (document instanceof IReservation) { - asnDocument = convertReservation((IReservation) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IOpenTicket) { - asnDocument = convertOpenTicket((IOpenTicket) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof ICarCarriageReservation) { - asnDocument = convertCarCarriageReservation((ICarCarriageReservation) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IFipTicket) { - asnDocument = convertFipTicket((IFipTicket) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IPass) { - asnDocument = convertPass((IPass) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IVoucher) { - asnDocument = convertVoucher((IVoucher) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof ICounterMark) { - asnDocument = convertCounterMark((ICounterMark) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IParkingGround) { - asnDocument = convertParkingGround((IParkingGround) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IStationPassage) { - asnDocument = convertStationPassage((IStationPassage) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof ICustomerCard) { - asnDocument = encodeCustomerCard((ICustomerCard) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - - if (document instanceof IDelayConfirmation) { - asnDocument = encodeDelayConfirmation((IDelayConfirmation) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - - if (asnDocument!= null && document.getToken()!= null) { - asnDocument.setToken(encodeToken(document.getToken())); - } - - if (asnDocument != null) { - documents.add(asnDocument); - } - } - asnTicket.setTransportDocument(documents); - } - - - return asnTicket; - } - - - - private DocumentData encodeDelayConfirmation(IDelayConfirmation document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - DelayConfirmation asnData = new DelayConfirmation(); - asnDocument.getTicket().setDelayConfirmation(asnData); - - asnData.setTrainIA5(UicEncoderUtils.getIA5NonNum(document.getTrain())); - asnData.setTrainNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getTrain()))); - - asnData.setReferenceNum(UicEncoderUtils.getNum(document.getReference())); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - asnData.setStationIA5(UicEncoderUtils.getIA5NonNum(document.getStation())); - asnData.setStationNum(UicEncoderUtils.getNum(document.getStation())); - - - asnData.setPlannedArrivalDate(document.getArrivalDate()); - asnData.setDepartureUTCOffset(document.getArrivalUTCoffset()); - - asnData.setAffectedTickets(encodeTicketLickList(document.getLinkedTickets())); - - asnData.setConfirmationType(ConfirmationTypeType.values()[document.getConfirmationType()]); - - asnData.setDelay(new Long(document.getDelay())); - - asnData.setTrainCancelled(document.isTrainCancelled()); - - - asnData.setInfoText(document.getInfoText()); - - asnData.setStationNameUTF8(document.getStationName()); - - asnData.setExtension(encodeExtension(document.getExtension())); - - return asnDocument; - } - - - /** - * Convert car carriage reservation. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertCarCarriageReservation( ICarCarriageReservation document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - CarCarriageReservationData asnData = new CarCarriageReservationData(); - asnDocument.getTicket().setCarCarriageReservation(asnData); - - asnData.setTrainIA5(UicEncoderUtils.getIA5NonNum(document.getTrain())); - asnData.setTrainNum(UicEncoderUtils.getNum(document.getTrain())); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setReferenceNum(UicEncoderUtils.getNum(document.getReference())); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUICReservation && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setCarrierNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getCarriers()))); - asnData.setCarrierIA5(UicEncoderUtils.getIA5NonNumList(document.getCarriers())); - - asnData.setExtension(encodeExtension(document.getExtension())); - - asnData.setCompartmentDetails(encodeCompartmentDetails(document.getCompartmentDetails())); - - - if (document.getPriceType()!= IPriceTypeType.travelPrice && document.getPriceType() != null ){ - asnData.setPriceType(PriceTypeType.valueOf(document.getPriceType().name())); - } - - - if (document.getServiceBrand()!= null) { - asnData.setServiceBrand(UicEncoderUtils.getRestrictedInt(document.getServiceBrand().getServiceBrand(),1,9999)); - asnData.setServiceBrandAbrUTF8(document.getServiceBrand().getServiceBrandAbbreviation()); - asnData.setServiceBrandNameUTF8(document.getServiceBrand().getServiceBrandDescription()); - - } - if (document.getStationCodeTable() != IStationCodeTable.stationUICReservation && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnData.setFromStationNameUTF8(document.getFromStationName()); - asnData.setToStationNameUTF8(document.getToStationName()); - - - asnData.setAttachedBicycles(UicEncoderUtils.getRestrictedInt(document.getAttachedBicycles(),1,5)); - asnData.setAttachedBoats(UicEncoderUtils.getRestrictedInt(document.getAttachedBoats(),1,2)); - asnData.setAttachedSurfboards(UicEncoderUtils.getRestrictedInt(document.getAttachedSurfboards(),1,5)); - - if (document.getLoadingDeck() != ILoadingDeckType.upper && document.getLoadingDeck() != null){ - asnData.setLoadingDeck(LoadingDeckType.valueOf(document.getLoadingDeck().name())); - } - - asnData.setLoadingListEntry(UicEncoderUtils.getRestrictedInt(document.getAttachedSurfboards(),1,200)); - - asnData.setBoatCategory(UicEncoderUtils.getRestrictedInt(document.getBoatCategory(),1,6)); - asnData.setCarCategory(UicEncoderUtils.getRestrictedInt(document.getCarCategory(),1,9)); - asnData.setCoach(UicEncoderUtils.getIA5(document.getCoach())); - - asnData.setRoofRackHeight(UicEncoderUtils.getRestrictedInt(document.getRoofRackHeight(),1,99)); - - if (document.getRoofRackType()!= IRoofRackType.norack && document.getRoofRackType() != null ) { - asnData.setRoofRackType(RoofRackType.valueOf(document.getRoofRackType().name())); - } - - if (document.getTariff() != null) { - asnData.setTariff(encodeTariff(document.getTariff())); - } - asnData.setNumberPlate(UicEncoderUtils.getIA5(document.getNumberPlate())); - asnData.setPlace(UicEncoderUtils.getIA5(document.getPlace())); - - if (document.isTextileRoof() ) { - asnData.setTextileRoof(true); - } else { - asnData.setTextileRoof(false); - } - - asnData.setTrailerPlate(UicEncoderUtils.getIA5(document.getTrailerPlate())); - - asnData.setLoadingDates(document.getBeginLoading(),document.getEndLoading(), issuingDate); - - asnData.setLoadingUTCOffset(document.getLoadingTimeUTCoffset()); - - asnData.setPrice(document.getPrice()); - - if (document.getVatDetails() != null && !document.getVatDetails().isEmpty()){ - for (IVatDetail vat : document.getVatDetails()) { - asnData.addVatDetail(encodeVatDetail(vat)); - } - } - - - return asnDocument; - } - - - /** - * Encode places. - * - * @param places the places - * @return the places type - * @throws EncodingFormatException the encoding format exception - */ - private PlacesType encodePlaces(IPlaces places) throws EncodingFormatException { - - if (places == null) { - return null; - } - - PlacesType asnData = new PlacesType(); - - asnData.setCoach(UicEncoderUtils.getIA5(places.getCoach())); - asnData.setPlaceDescription(places.getPlaceDescription()); - asnData.setPlaceString(UicEncoderUtils.getIA5(places.getPlaceString())); - asnData.setPlaceNum(SequenceOfPlaceNum.getSequence(UicEncoderUtils.getNumList(places.getPlaces()))); - asnData.setPlaceIA5(UicEncoderUtils.getIA5NonNumList(places.getPlaces())); - - return asnData; - } - - - /** - * Encode compartment details. - * - * @param compartmentDetails the compartment details - * @return the compartment details type - * @throws EncodingFormatException the encoding format exception - */ - private CompartmentDetailsType encodeCompartmentDetails(ICompartmentDetails compartmentDetails) throws EncodingFormatException { - - if (compartmentDetails == null) { - return null; - } - CompartmentDetailsType asnData = new CompartmentDetailsType(); - - asnData.setCoachType(UicEncoderUtils.getRestrictedInt(compartmentDetails.getCoachType(), 1,99)); - asnData.setCoachTypeDescr(compartmentDetails.getCoachTypeDescr()); - asnData.setCompartmentType(UicEncoderUtils.getRestrictedInt(compartmentDetails.getCompartmentType(), 1,99)); - asnData.setCompartmentTypeDescr(compartmentDetails.getCompartmentTypeDescr()); - asnData.setSpecialAllocation(UicEncoderUtils.getRestrictedInt(compartmentDetails.getSpecialAllocation(), 1,99)); - asnData.setSpecialAllocationDescr(compartmentDetails.getSpecialAllocationDescr()); - - return asnData; - } - - /** - * Encode berths. - * - * @param berths the berths - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfBerthDetailData encodeBerths(Collection berths) throws EncodingFormatException { - - if (berths == null || berths.isEmpty()) { - return null; - } - SequenceOfBerthDetailData asnList = new SequenceOfBerthDetailData(); - - for ( IBerth berth : berths){ - BerthDetailData asnBerth = new BerthDetailData(); - - if (berth.getType() != null) { - asnBerth.setBerthType(BerthTypeType.valueOf(berth.getType().name())); - } - - if (berth.getGender()!= ICompartmentGenderType.family && berth.getGender() != null) { - asnBerth.setGender(CompartmentGenderType.valueOf(berth.getGender().name())); - } - - asnBerth.setNumberOfBerths(UicEncoderUtils.getRestrictedInt(berth.getNumberOfBerths(), 1 , 999 )); - - asnList.add(asnBerth); - } - - if (asnList.isEmpty()) { - return null; - } - return asnList; - } - - /** - * Convert reservation. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertReservation(IReservation document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - ReservationData asnData = new ReservationData(); - asnDocument.getTicket().setReservation(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setReferenceNum(UicEncoderUtils.getNum(document.getReference())); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - asnData.setCarrierNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getCarriers()))); - asnData.setCarrierIA5(UicEncoderUtils.getIA5NonNumList(document.getCarriers())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUICReservation && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnData.setFromStationNameUTF8(document.getFromStationName()); - asnData.setToStationNameUTF8(document.getToStationName()); - - asnData.setTrainIA5(UicEncoderUtils.getIA5NonNum(document.getTrain())); - asnData.setTrainNum(UicEncoderUtils.getNum(document.getTrain())); - - asnData.setTariff(encodeTariffCollection(document.getTariffs())); - - asnData.setDepartureArrivalDates(document.getDepartureDate(),document.getArrivalDate(), issuingDate); - - if (document.getDepartureUTCoffset() != null) { - asnData.setDepartureUTCOffset(document.getDepartureUTCoffset()); - if (document.getArrivalUTCoffset() != null && document.getArrivalUTCoffset() != document.getDepartureUTCoffset()){ - asnData.setArrivalUTCOffset(document.getArrivalUTCoffset()); - } - } - - - - if (document.getClassCode() != ITravelClassType.second){ - asnData.setClassCode(convertTravelClass(document.getClassCode())); - } - - asnData.setBerth(encodeBerths(document.getBerths())); - - asnData.setCompartmentDetails(encodeCompartmentDetails(document.getCompartmentDetails())); - - asnData.setLuggage(encodeLuggage(document.getLuggageRestriction())); - - asnData.setNumberOfOverbooked(UicEncoderUtils.getRestrictedInt(document.getNumberOfOverbooked(), 1, 200)); - asnData.setNumberOfSupplements(UicEncoderUtils.getRestrictedInt(document.getNumberOfSupplements(), 1, 200)); - - if (document.getPriceType()!= IPriceTypeType.travelPrice && document.getPriceType() != null){ - asnData.setPriceType(PriceTypeType.valueOf(document.getPriceType().name())); - } - asnData.setTypeOfSupplement(UicEncoderUtils.getRestrictedInt(document.getTypeOfSupplement(), 1, 9)); - - asnData.setPlaces(encodePlaces(document.getPlaces())); - asnData.setBicyclePlaces(encodePlaces(document.getBicyclePlaces())); - - - if (document.getService() != IServiceType.seat && document.getService() != null) { - asnData.setService(ServiceType.valueOf(document.getService().name())); - } - - if (document.getServiceBrand()!= null) { - asnData.setServiceBrand(UicEncoderUtils.getRestrictedInt(document.getServiceBrand().getServiceBrand(),1,9999)); - asnData.setServiceBrandAbrUTF8(document.getServiceBrand().getServiceBrandAbbreviation()); - asnData.setServiceBrandNameUTF8(document.getServiceBrand().getServiceBrandDescription()); - - } - - if (document.getServiceLevel() != null && document.getServiceLevel().length() > 2) { - throw new EncodingFormatException("Service level too long"); - } - asnData.setServiceLevel(UicEncoderUtils.getIA5(document.getServiceLevel())); - - asnData.setPrice(document.getPrice()); - - if (document.getVatDetails() != null && !document.getVatDetails().isEmpty()){ - for (IVatDetail vat : document.getVatDetails()) { - asnData.addVatDetail(encodeVatDetail(vat)); - } - } - - return asnDocument; - } - - /** - * Encode included addons. - * - * @param tickets the tickets - * @param issuingDate the issuing date - * @param travelClassType the class code - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfIncludedOpenTicketType encodeIncludedAddons(Collection tickets, Date issuingDate, ITravelClassType travelClassType) throws EncodingFormatException { - - if (tickets == null || tickets.isEmpty()) { - return null; - } - SequenceOfIncludedOpenTicketType asnList = new SequenceOfIncludedOpenTicketType(); - - for ( IIncludedOpenTicket ticket : tickets){ - - IncludedOpenTicketType asnTicket = encodeIncludedOpenTicket(ticket,issuingDate,travelClassType); - if (asnTicket!=null) { - asnList.add(asnTicket); - } - } - - if (asnList.isEmpty()) { - return null; - } - return asnList; - } - - - /** - * Encode included open ticket. - * - * @param document the document - * @param issuingDate the issuing date - * @param classCode the class code - * @return the included open ticket type - * @throws EncodingFormatException the encoding format exception - */ - private IncludedOpenTicketType encodeIncludedOpenTicket(IIncludedOpenTicket document, Date issuingDate, ITravelClassType classCode) throws EncodingFormatException { - - if (document == null) return null; - - IncludedOpenTicketType asnData = new IncludedOpenTicketType(); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setIncludedCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getIncludedCarriers()))); - asnData.setIncludedCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getIncludedCarriers())); - - asnData.setExcludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getExcludedServiceBrands(),1,9999))); - asnData.setIncludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getIncludedServiceBrands(),1,9999))); - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getValidFromUTCoffset() != null) { - asnData.setValidFromUTCOffset(document.getValidFromUTCoffset()); - if (document.getValidUntilUTCoffset() != null && document.getValidUntilUTCoffset() != document.getValidFromUTCoffset()){ - asnData.setValidUntilUTCOffset(document.getValidUntilUTCoffset()); - } - } - - - if (document.getTariffs() != null && document.getTariffs().size() > 0){ - asnData.setTariffs(encodeTariffCollection(document.getTariffs())); - } - - if (document.getClassCode() != classCode){ - asnData.setClassCode(convertTravelClass(document.getClassCode())); - } - if (document.getExternalIssuer() > 0) { - asnData.setExternalIssuerId(new Long(document.getExternalIssuer())); - } - - if (document.getAuthorizationCode() > 0) { - asnData.setIssuerAutorizationId(new Long(document.getAuthorizationCode())); - } - - if (document.getValidRegionList()!= null && document.getValidRegionList().size() > 0) { - asnData.setValidRegion(encodeRegionCollection(document.getValidRegionList(), issuingDate)); - } - - return asnData; - } - - /** - * Encode return description. - * - * @param route the route - * @param issuingDate the issuing date - * @return the return route description type - * @throws EncodingFormatException the encoding format exception - */ - private ReturnRouteDescriptionType encodeReturnDescription(IReturnRouteDescription route, Date issuingDate) throws EncodingFormatException { - - if (route == null) return null; - - ReturnRouteDescriptionType asnData = new ReturnRouteDescriptionType(); - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(route.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(route.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(route.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(route.getToStation())); - - asnData.setFromStationNameUTF8(route.getFromStationName()); - asnData.setToStationNameUTF8(route.getToStationName()); - - if (route.getValidRegionList()!= null && route.getValidRegionList().size() > 0) { - asnData.setValidReturnRegion(encodeRegionCollection(route.getValidRegionList(), issuingDate)); - } - - if (route.getValidRegionDesc() != null && route.getValidRegionDesc().length() > 0){ - asnData.setValidReturnRegionDesc(route.getValidRegionDesc()); - } - - return asnData; - } - - /** - * Encode luggage. - * - * @param luggageRestriction the luggage restriction - * @return the luggage restriction type - * @throws EncodingFormatException the encoding format exception - */ - private LuggageRestrictionType encodeLuggage(ILuggageRestriction luggageRestriction) throws EncodingFormatException { - - if (luggageRestriction== null) return null; - - LuggageRestrictionType asnData = new LuggageRestrictionType(); - - asnData.setMaxHandLuggagePieces(UicEncoderUtils.getRestrictedIntWithDefault(luggageRestriction.getMaxHandLuggagePieces(),1,99,3)); - - asnData.setMaxNonHandLuggagePieces(UicEncoderUtils.getRestrictedIntWithDefault(luggageRestriction.getMaxNonHandLuggagePieces(),1,99,1)); - - if (luggageRestriction.getRegisteredLuggage() != null && luggageRestriction.getRegisteredLuggage().size() > 0) { - asnData.setRegisteredLuggage(encodeRegisteredLuggage(luggageRestriction.getRegisteredLuggage())); - } - - return asnData; - } - - /** - * Encode registered luggage. - * - * @param registeredLuggage the registered luggage - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfRegisteredLuggageType encodeRegisteredLuggage(Collection registeredLuggage) throws EncodingFormatException { - if (registeredLuggage== null || registeredLuggage.isEmpty()) { - return null; - } - SequenceOfRegisteredLuggageType asnList = new SequenceOfRegisteredLuggageType(); - - for ( IRegisteredLuggage luggage : registeredLuggage){ - RegisteredLuggageType asnLuggage = new RegisteredLuggageType(); - asnLuggage.setMaxSize(UicEncoderUtils.getRestrictedInt(luggage.getMaxSize(),1,300)); - asnLuggage.setMaxWeight(UicEncoderUtils.getRestrictedInt(luggage.getMaxWeight(),1,99)); - asnLuggage.setRegistrationId(luggage.getRegistrationId()); - - asnList.add(asnLuggage); - } - - if (asnList.isEmpty()){ - return null; - } - return asnList; - } - - /** - * Convert open ticket. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertOpenTicket(IOpenTicket document,Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - OpenTicketData asnData = new OpenTicketData(); - asnTicket.setOpenTicket(asnData); - - asnDocument.setTicket(asnTicket); - asnTicket.setOpenTicket(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - asnData.setReferenceNum(UicEncoderUtils.getNum(document.getReference())); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnData.setFromStationNameUTF8(document.getFromStationName()); - asnData.setToStationNameUTF8(document.getToStationName()); - - asnData.setCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getIncludedCarriers()))); - asnData.setCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getIncludedCarriers())); - - asnData.setExcludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getExcludedServiceBrands(),1,32000))); - asnData.setIncludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getIncludedServiceBrands(),1,32000))); - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getValidFromUTCoffset() != null) { - asnData.setValidFromUTCOffset(document.getValidFromUTCoffset()); - if (document.getValidUntilUTCoffset() != null && document.getValidUntilUTCoffset() != document.getValidFromUTCoffset()){ - asnData.setValidUntilUTCOffset(document.getValidUntilUTCoffset()); - } - } - - - asnData.setTariffs(encodeTariffCollection(document.getTariffs())); - - if (document.getActivatedDays() != null && !document.getActivatedDays().isEmpty()) { - asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays())); - } - - if (document.getClassCode() != ITravelClassType.second){ - asnData.setClassCode(convertTravelClass(document.getClassCode())); - } - if (document.getExternalIssuer()>0) { - asnData.setExtIssuerId(new Long(document.getExternalIssuer())); - } - - if (document.getAuthorizationCode()>0) { - asnData.setIssuerAutorizationId(new Long (document.getAuthorizationCode())); - } - - if (document.getValidRegionList() != null && document.getValidRegionList().size() > 0) { - asnData.setValidRegion(encodeRegionCollection(document.getValidRegionList(), issuingDate)); - } - asnData.setValidRegionDesc(document.getValidRegionDesc()); - - if (document.getIncludedAddOns() != null && document.getIncludedAddOns().size() > 0) { - asnData.setIncludedAddOns(encodeIncludedAddons(document.getIncludedAddOns(),issuingDate, document.getClassCode())); - } - - if (document.getLuggageRestriction() != null) { - asnData.setLuggage(encodeLuggage(document.getLuggageRestriction())); - } - - if (document.isReturnIncluded()) { - asnData.setReturnIncluded(true); - asnData.setReturnDescription(encodeReturnDescription(document.getReturnDescription(),issuingDate)); - } else { - asnData.setReturnIncluded(false); - } - - asnData.setPrice(document.getPrice()); - - if (document.getVatDetails() != null && !document.getVatDetails().isEmpty()){ - for (IVatDetail vat : document.getVatDetails()) { - asnData.addVatDetail(encodeVatDetail(vat)); - } - } - - - return asnDocument; - } - - /** - * Convert counter mark. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertCounterMark(ICounterMark document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - CountermarkData asnData = new CountermarkData(); - asnDocument.getTicket().setCounterMark(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - - asnData.setTicketReferenceNum(UicEncoderUtils.getNum(document.getTicketReference())); - asnData.setTicketReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getTicketReference())); - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnData.setFromStationNameUTF8(document.getFromStationName()); - asnData.setToStationNameUTF8(document.getToStationName()); - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getValidFromUTCoffset() != null) { - asnData.setValidFromUTCOffset(document.getValidFromUTCoffset()); - if (document.getValidUntilUTCoffset() != null && document.getValidUntilUTCoffset() != document.getValidFromUTCoffset()){ - asnData.setValidUntilUTCOffset(document.getValidUntilUTCoffset()); - } - } - - - - asnData.setReferenceNum(UicEncoderUtils.getNum(document.getReference())); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnData.setFromStationNameUTF8(document.getFromStationName()); - asnData.setToStationNameUTF8(document.getToStationName()); - - asnData.setCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getIncludedCarriers()))); - asnData.setCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getIncludedCarriers())); - - asnData.setExcludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getExcludedServiceBrands(),1,32000))); - asnData.setIncludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getIncludedServiceBrands(),1,32000))); - - if (document.getValidRegionList() != null && document.getValidRegionList().size() > 0) { - asnData.setValidRegion(encodeRegionCollection(document.getValidRegionList(), issuingDate)); - } - asnData.setValidRegionDesc(document.getValidRegionDesc()); - - if (document.getClassCode() != ITravelClassType.second){ - asnData.setClassCode(convertTravelClass(document.getClassCode())); - } - - - if (document.isReturnIncluded()) { - asnData.setReturnIncluded(true); - if (document.getReturnDescription()!= null) { - asnData.setReturnDescription(encodeReturnDescription(document.getReturnDescription(),issuingDate)); - } - } else { - asnData.setReturnIncluded(false); - } - - return asnDocument; - } - - - - /** - * Encode via station collection. - * - * @param stations the stations - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfViaStationType encodeViaStationCollection(Collection stations) throws EncodingFormatException { - if (stations== null || stations.isEmpty()) { - return null; - } - SequenceOfViaStationType asnList = new SequenceOfViaStationType(); - - for ( IViaStation station : stations) { - ViaStationType asnData = encodeViaStation(station); - if (asnData != null) { - asnList.add(asnData); - } - } - - if (asnList.isEmpty()) { - return null; - } - - return asnList; - } - - - /** - * Encode via station. - * - * @param document the data - * @return the via station type - * @throws EncodingFormatException the encoding format exception - */ - private ViaStationType encodeViaStation(IViaStation document) throws EncodingFormatException { - if (document == null) return null; - - ViaStationType asnData =new ViaStationType(); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setStationIA5(UicEncoderUtils.getIA5NonNum(document.getStation())); - asnData.setStationNum(UicEncoderUtils.getNum(document.getStation())); - - asnData.setAlternativeRoutes(encodeViaStationCollection(document.getAlternativeRoutes())); - - if (document.isBorder()) { - asnData.setBorder(true); - } else { - asnData.setBorder(false); - } - - asnData.setCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getCarriers()))); - asnData.setCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getCarriers())); - - asnData.setRoute(encodeViaStationCollection(document.getRoute())); - - if (document.getRouteId() > 0){ - asnData.setSeriesId(new Long(document.getRouteId())); - } - return asnData; - } - - /** - * Encode zone. - * - * @param data the data - * @return the zone type - * @throws EncodingFormatException the encoding format exception - */ - private ZoneType encodeZone(IZone data) throws EncodingFormatException { - if (data == null) return null; - - ZoneType asnData =new ZoneType(); - - if (data.getBinaryZoneId() != null && data.getBinaryZoneId().length > 0) { - asnData.setBinaryZoneId(data.getBinaryZoneId()); - } - asnData.setCarrierNum(UicEncoderUtils.getNum(data.getCarrier())); - asnData.setCarrierIA5(UicEncoderUtils.getIA5NonNum(data.getCarrier())); - - if (data.getStationCodeTable() != IStationCodeTable.stationUIC && data.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(data.getStationCodeTable().name())); - } - asnData.setEntryStationIA5(UicEncoderUtils.getIA5NonNum(data.getEntryStation())); - asnData.setEntryStationNum(UicEncoderUtils.getNum(data.getEntryStation())); - - asnData.setTerminatingStationIA5(UicEncoderUtils.getIA5NonNum(data.getTerminatingStation())); - asnData.setTerminatingStationNum(UicEncoderUtils.getNum(data.getTerminatingStation())); - - asnData.setZoneId(SequenceOfUnrestrictedLong.getSequence(UicEncoderUtils.encodeIntegerCollection(data.getZoneIds()))); - - if (data.getCity() > 0) { - asnData.setCity(Asn1BigInteger.toAsn1(data.getCity())); - } - - if (data.getNUTScode() != null && data.getNUTScode().length() > 0) { - asnData.setNutsCode(data.getNUTScode()); - } - - return asnData; - } - - - - - - /** - * Encode train link. - * - * @param data the data - * @param issuingDate the issuing date - * @return the train link type - * @throws EncodingFormatException the encoding format exception - */ - private TrainLinkType encodeTrainLink(ITrainLink data, Date issuingDate) throws EncodingFormatException { - if (data == null) return null; - - TrainLinkType asnData =new TrainLinkType(); - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(data.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(data.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(data.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(data.getToStation())); - - asnData.setFromStationName(data.getFromStationName()); - asnData.setToStationName(data.getToStationName()); - - asnData.setTrainIA5(UicEncoderUtils.getIA5NonNum(data.getTrain())); - asnData.setTrainNum(UicEncoderUtils.getNum(data.getTrain())); - - asnData.setDepartureDate(data.getDepartureDateTime(), issuingDate); - - return asnData; - } - - /** - * Encode polygone. - * - * @param data the data - * @return the polygone type - * @throws EncodingFormatException the encoding format exception - */ - private PolygoneType encodePolygone(IPolygone data) throws EncodingFormatException { - if (data == null) return null; - if (data.getEdges() == null || data.getEdges().isEmpty()) { - return null; - } - - PolygoneType asnData = new PolygoneType(); - SequenceOfDeltaCoordinates asnList = new SequenceOfDeltaCoordinates(); - - boolean firstEdge = true; - - for ( IGeoCoordinate edge : data.getEdges()) { - - if (firstEdge) { - asnData.setFirstEdge(encodeGeoCoordinate(edge)); - firstEdge = false; - } else { - DeltaCoordinates delta = new DeltaCoordinates(); - delta.setLatitude(Asn1BigInteger.toAsn1(asnData.getFirstEdge().getLatitude() - edge.getLatitude())); - delta.setLatitude(Asn1BigInteger.toAsn1(asnData.getFirstEdge().getLongitude() - edge.getLongitude())); - } - - } - if (!asnList.isEmpty()) { - asnData.setEdges(asnList); - } - return asnData; - } - - /** - * Encode line. - * - * @param data the data - * @return the line type - * @throws EncodingFormatException the encoding format exception - */ - private LineType encodeLine(ILine data) throws EncodingFormatException { - if (data == null) return null; - LineType asnData =new LineType(); - - asnData.setBinaryZoneId(data.getBinaryZoneId()); - asnData.setCarrierNum(UicEncoderUtils.getNum(data.getCarrier())); - asnData.setCarrierIA5(UicEncoderUtils.getIA5NonNum(data.getCarrier())); - if (data.getStationCodeTable() != IStationCodeTable.stationUIC && data.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(data.getStationCodeTable().name())); - } - asnData.setEntryStationIA5(UicEncoderUtils.getIA5NonNum(data.getEntryStation())); - asnData.setEntryStationNum(UicEncoderUtils.getNum(data.getEntryStation())); - - asnData.setTerminatingStationIA5(UicEncoderUtils.getIA5NonNum(data.getTerminatingStation())); - asnData.setTerminatingStationNum(UicEncoderUtils.getNum(data.getTerminatingStation())); - - if (data.getCity() > 0) { - asnData.setCity(new Long(data.getCity())); - } - - asnData.setLineId(SequenceOfUnrestrictedLong.getSequence(UicEncoderUtils.encodeIntegerCollection(data.getLineIds()))); - - return asnData; - } - - - - /** - * Encode region collection. - * - * @param regionList the region list - * @param issuingDate the issuing date - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfRegionalValidityType encodeRegionCollection(Collection regionList, Date issuingDate) throws EncodingFormatException { - - if (regionList == null || regionList.isEmpty()) { - return null; - } - - SequenceOfRegionalValidityType asnList = new SequenceOfRegionalValidityType(); - - for ( IRegionalValidity region :regionList) { - - RegionalValidityType asnRegion = new RegionalValidityType(); - - if (region instanceof ILine ) { - LineType line = encodeLine((ILine)region); - if (line == null){ - break; - } - asnRegion.setLines(line); - asnList.add(asnRegion); - } else if (region instanceof IPolygone ) { - PolygoneType line = encodePolygone((IPolygone)region); - if (line == null){ - break; - } - asnRegion.setPolygone(line); - asnList.add(asnRegion); - } else if (region instanceof ITrainLink ) { - TrainLinkType trainLink = encodeTrainLink((ITrainLink)region, issuingDate); - if (trainLink == null){ - break; - } - asnRegion.setTrainLink(trainLink); - asnList.add(asnRegion); - } else if (region instanceof IViaStation ) { - ViaStationType viaStation = encodeViaStation((IViaStation)region); - if (viaStation == null){ - break; - } - asnRegion.setViaStations(viaStation); - asnList.add(asnRegion); - } else if (region instanceof IZone ) { - ZoneType zone = encodeZone((IZone)region); - if (zone == null){ - break; - } - asnRegion.setZones(zone); - asnList.add(asnRegion); - } - - } - - if (asnList.isEmpty()) { - return null; - } - - return asnList; - } - - /** - * Convert parking ground. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertParkingGround(IParkingGround document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - ParkingGroundData asnData = new ParkingGroundData(); - asnDocument.getTicket().setParkingGround(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setReferenceNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getReference()))); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setExtension(encodeExtension(document.getExtension())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setStationIA5(UicEncoderUtils.getIA5NonNum(document.getStation())); - asnData.setStationNum(UicEncoderUtils.getNum(document.getStation())); - - asnData.setAccessCode(UicEncoderUtils.getIA5(document.getAccessCode())); - asnData.setEntryTrack(document.getEntryTrack()); - - if (document.getFromParkingDate() != null){ - asnData.setParkingDates(document.getFromParkingDate(),document.getToParkingDate(),issuingDate); - } - - asnData.setLocation(document.getLocation()); - asnData.setNumberPlate(UicEncoderUtils.getIA5(document.getNumberPlate())); - asnData.setParkingGroundId(UicEncoderUtils.getIA5(document.getParkingGroundId())); - asnData.setSpecialInformation(document.getSpecialInformation()); - - asnData.setPrice(document.getPrice()); - - if (document.getVatDetails() != null && !document.getVatDetails().isEmpty()){ - for (IVatDetail vat : document.getVatDetails()) { - asnData.addVatDetail(encodeVatDetail(vat)); - } - } - - return asnDocument; - } - - - /** - * Encode route section. - * - * @param document the route - * @return the route section type - * @throws EncodingFormatException the encoding format exception - */ - private RouteSectionType encodeRouteSection(IRouteSection document) throws EncodingFormatException { - - if (document == null) return null; - - RouteSectionType asnRoute = new RouteSectionType(); - - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnRoute.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnRoute.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnRoute.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnRoute.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnRoute.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnRoute.setFromStationNameUTF8(document.getFromStationName()); - asnRoute.setToStationNameUTF8(document.getToStationName()); - - - return asnRoute; - } - - /** - * Encode tariff collection. - * - * @param tariffs the tariffs - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfTariffType encodeTariffCollection(Collection tariffs) throws EncodingFormatException { - - if (tariffs== null || tariffs.isEmpty()) { - return null; - } - - SequenceOfTariffType tariffList = new SequenceOfTariffType(); - - for (ITariff tariff :tariffs){ - - TariffType asnTariff = encodeTariff(tariff); - - if (asnTariff != null) { - tariffList.add(asnTariff); - } - } - - if (tariffList.isEmpty()) { - return null; - } - - return tariffList; - } - - /** - * Encode tariff. - * - * @param tariff the tariff - * @return the tariff type - * @throws EncodingFormatException the encoding format exception - */ - private TariffType encodeTariff(ITariff tariff) throws EncodingFormatException { - - if (tariff == null ) { - return null; - } - - TariffType asnTariff = new TariffType(); - - asnTariff.setAgeAbove(UicEncoderUtils.getRestrictedInt(tariff.getAgeAbove(),2,120)); - asnTariff.setAgeBelow(UicEncoderUtils.getRestrictedInt(tariff.getAgeBelow(),1,40)); - - asnTariff.setNumberOfPassengers(UicEncoderUtils.getRestrictedIntWithDefault(tariff.getNumberOfPassengers(),1,200,1)); - - - try { - if (tariff.getPassengerType() != null) { - asnTariff.setPassengerType(PassengerType.valueOf(tariff.getPassengerType().name())); - } - } catch (Exception e){ - //no value found - } - - - asnTariff.setReductionCard(encodeCardReferences(tariff.getReductionCards())); - asnTariff.setRestrictedToCountryOfResidence(tariff.isRestrictedToCountryOfResidence()); - asnTariff.setRestrictedToRouteSection(encodeRouteSection(tariff.getRestrictedToRouteSection())); - - if (tariff.getSeriesDataDetails()!= null) { - asnTariff.setSeriesDataDetails(encodeSeriesDataDetails(tariff.getSeriesDataDetails())); - } - - - asnTariff.setTariffDesc(tariff.getTariffDescription()); - asnTariff.setTariffIdIA5(UicEncoderUtils.getIA5NonNum(tariff.getTariffId())); - asnTariff.setTariffIdNum(UicEncoderUtils.getNum(tariff.getTariffId())); - - asnTariff.setTraverlerid(SequenceOfTravelerId.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(tariff.getTravelerIds(), 1, 254))); - - return asnTariff; - } - - private SeriesDetailType encodeSeriesDataDetails( ISeriesDataDetails seriesDataDetails) throws EncodingFormatException { - SeriesDetailType details = new SeriesDetailType(); - details.setSeries(UicEncoderUtils.getRestrictedInt(seriesDataDetails.getSeries(), 1, 99999)); - details.setSupplyingCarrier(UicEncoderUtils.getRestrictedInt(seriesDataDetails.getSupplyingCarrier(), 1, 9999)); - details.setOfferIdentification(UicEncoderUtils.getRestrictedInt(seriesDataDetails.getOfferIdentification(), 1, 99)); - return null; - } - - /** - * Convert voucher. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertVoucher(IVoucher document, Date issuingDate) throws EncodingFormatException { - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - - VoucherData asnData = new VoucherData(); - asnDocument.getTicket().setVoucher(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - asnData.setReferenceNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getReference()))); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setInfoText(document.getInfoText()); - - asnData.setValidity(document.getValidFrom(), document.getValidUntil()); - - if (document.getType() != null) { - asnData.setType(UicEncoderUtils.getRestrictedInt(document.getType(), 1,9999)); - } - if (document.getAmount() != null) { - asnData.setValue(UicEncoderUtils.getRestrictedInt(document.getAmount(),1,9999999)); - } - return asnDocument; - } - - /** - * Convert pass. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertPass(IPass document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - PassData asnData = new PassData(); - asnDocument.getTicket().setPass(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - asnData.setReferenceNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getReference()))); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - asnData.setIncludedCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getIncludedCarriers()))); - asnData.setIncludedCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getIncludedCarriers())); - - asnData.setExcludedCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getExcludedCarriers()))); - asnData.setExcludedCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getExcludedCarriers())); - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getValidFromUTCoffset() != null) { - asnData.setValidFromUTCOffset(document.getValidFromUTCoffset()); - if (document.getValidUntilUTCoffset() != null && document.getValidUntilUTCoffset() != document.getValidFromUTCoffset()){ - asnData.setValidUntilUTCOffset(document.getValidUntilUTCoffset()); - } - } - - if (document.getActivatedDays() != null && !document.getActivatedDays().isEmpty()) { - asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays())); - } - - asnData.setClassCode(convertTravelClass(document.getClassCode())); - - if (document.getCountries() != null && document.getCountries().size() > 0){ - asnData.setCountries(SequenceOfCountries.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getCountries(),1,250))); - } - - asnData.setExcludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getExcludedServiceBrands(),1,32000))); - asnData.setIncludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getIncludedServiceBrands(),1,32000))); - - asnData.setNumberOfDaysOfTravel(UicEncoderUtils.getRestrictedInt(document.getNumberOfDaysOfTravel(), 1, 93)); - asnData.setNumberOfPossibleTrips(UicEncoderUtils.getRestrictedInt(document.getNumberOfPossibleTrips(), 1, 30)); - asnData.setNumberOfValidityDays(UicEncoderUtils.getRestrictedInt(document.getNumberOfValidityDays(), 1, 370)); - asnData.setPassDescription(document.getPassDescription()); - if (document.getPassType() > 0 ){ - asnData.setPassType(new Long(document.getPassType())); - } - - asnData.setTariffs(encodeTariffCollection(document.getTariffs())); - - - - if(document.getValidRegionList()!= null && document.getValidRegionList().size() > 0) { - asnData.setValidRegion(encodeRegionCollection(document.getValidRegionList(), issuingDate)); - } - - if (document.getValidityDetails() != null) { - asnData.setValidityPeriodDetails(encodeValidityDetails(document.getValidityDetails(), issuingDate)); - } - - - - asnData.setPrice(document.getPrice()); - - if (document.getVatDetails() != null && !document.getVatDetails().isEmpty()){ - for (IVatDetail vat : document.getVatDetails()) { - asnData.addVatDetail(encodeVatDetail(vat)); - } - } - - - return asnDocument; - } - - - private ValidityPeriodDetailType encodeValidityDetails( IValidityDetails validityDetails, Date referenceDate) throws EncodingFormatException { - - if ( (validityDetails.getTimeRanges() == null || validityDetails.getTimeRanges().isEmpty()) - || - (validityDetails.getValidityRanges() == null || validityDetails.getValidityRanges().isEmpty()) ) { - return null; - } - - - ValidityPeriodDetailType asnData = new ValidityPeriodDetailType(); - - if (validityDetails.getTimeRanges() != null) { - for (ITimeRange range : validityDetails.getTimeRanges()) { - - if (range.getFromTime() == range.getUntilTime()){ - break; - } - - TimeRangeType asnRange = new TimeRangeType(); - asnRange.setFromTime(new Long(range.getFromTime())); - asnRange.setUntilTime(new Long(range.getUntilTime())); - - asnData.getExcludedTimeRange().add(asnRange); - } - } - - if (validityDetails.getValidityRanges() != null) { - for (IValidityRange range : validityDetails.getValidityRanges()) { - - ValidityPeriodType asnRange = new ValidityPeriodType(); - - asnRange.setValidityDates(range.getFromDate(), range.getUntilDate(), referenceDate); - - if (range.getValidFromUTCoffset() != null) { - asnRange.setValidFromUTCOffset(range.getValidFromUTCoffset()); - if (range.getValidUntilUTCoffset() != null && range.getValidUntilUTCoffset() != range.getValidFromUTCoffset()){ - asnRange.setValidUntilUTCOffset(range.getValidUntilUTCoffset()); - } - } - - - asnData.getValidityPeriod().add(asnRange); - } - } - - return asnData; - } - - /** - * Convert fip ticket. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertFipTicket(IFipTicket document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - - FIPTicketData asnData = new FIPTicketData(); - asnDocument.getTicket().setFipTicket(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - asnData.setReferenceNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getReference()))); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setCarrierNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getCarriers()))); - asnData.setCarrierIA5(UicEncoderUtils.getIA5NonNumList(document.getCarriers())); - - asnData.setClassCode(convertTravelClass(document.getClassCode())); - - if (!document.isIncludesSupplements()){ - asnData.setIncludesSupplements(false); - } - asnData.setNumberOfTravelDays(UicEncoderUtils.getRestrictedInt(document.getNumberOfTravelDates(), 1, 8)); - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getActivatedDays() != null && !document.getActivatedDays().isEmpty()) { - asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays())); - } - - asnData.setExtension(encodeExtension(document.getExtension())); - - return asnDocument; - } - - /** - * Convert station passage. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertStationPassage(IStationPassage document,Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - StationPassageData asnData = new StationPassageData(); - asnDocument.getTicket().setStationPassage(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - asnData.setReferenceNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getReference()))); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - if (document.getNumberOfdaysAllowed() > 0) { - asnData.setNumberOfDaysValid(new Long(document.getNumberOfdaysAllowed())); - } - - asnData.setProductName(document.getProductName()); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - - if (document.getStations()!= null && !document.getStations().isEmpty()){ - SequenceOfStringIA5 stationsIA5 = new SequenceOfStringIA5(); - SequenceOfUnrestrictedLong stationsNum = new SequenceOfUnrestrictedLong(); - - for (String station : document.getStations()) { - String ia5 = UicEncoderUtils.getIA5NonNum(station); - Long num = UicEncoderUtils.getNum(station); - if (ia5 != null && ia5.length() > 0) { - stationsIA5.add(ia5); - } - if (num != null && num > 0){ - stationsNum.add(num); - } - } - if (!stationsIA5.isEmpty()){ - asnData.setStationIA5(stationsIA5); - } - if (!stationsNum.isEmpty()){ - asnData.setStationNum(stationsNum); - } - } - - if (document.getStationNames()!= null && !document.getStationNames().isEmpty()) { - - SequenceOfStringUTF8 asnList = new SequenceOfStringUTF8(); - for ( String text :document.getStationNames()){ - if (text.length() > 0) { - asnList.add(text); - } - } - - if (!asnList.isEmpty()) { - asnData.setStationNameUTF8(asnList); - } - - } - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getValidFromUTCoffset() != null) { - asnData.setValidFromUTCOffset(document.getValidFromUTCoffset()); - if (document.getValidUntilUTCoffset() != null && document.getValidUntilUTCoffset() != document.getValidFromUTCoffset()){ - asnData.setValidUntilUTCOffset(document.getValidUntilUTCoffset()); - } - } - - - asnData.setExtension(encodeExtension(document.getExtension())); - - asnData.setAreaCodeNum(SequenceOfUnrestrictedLong.getSequence(UicEncoderUtils.getNumList(document.getAreaCodes()))); - asnData.setAreaCodeIA5(UicEncoderUtils.getIA5NonNumList(document.getAreaCodes())); - - asnData.setAreaNameUTF8(UicEncoderUtils.encodeStringCollection(document.getAreaNames())); - - return asnDocument; - } - - - /** - * Encode control details. - * - * @param data the data - * @param issuingDate the issuing date - * @return the control data - * @throws EncodingFormatException the encoding format exception - */ - private ControlData encodeControlDetails(IControlDetail data, Date issuingDate) throws EncodingFormatException { - - if (data == null) return null; - - ControlData asnData = new ControlData(); - - asnData.setExtension(encodeExtension(data.getExtension())); - - if (data.isAgeCheckRequired()) { - asnData.setAgeCheckRequired(true); - } else { - asnData.setAgeCheckRequired(false); - } - - if (data.isIdentificationByIdCard()){ - asnData.setIdentificationByIdCard(true); - } else { - asnData.setIdentificationByIdCard(false); - } - - if (data.isIdentificationByPassportId()){ - asnData.setIdentificationByPassportId(true); - } else { - asnData.setIdentificationByPassportId(false); - } - - if (data.isOnlineValidationRequired()){ - asnData.setOnlineValidationRequired(true); - } else { - asnData.setOnlineValidationRequired(false); - } - - if (data.isPassportValidationRequired()){ - asnData.setPassportValidationRequired(true); - } else { - asnData.setPassportValidationRequired(false); - } - - if (data.isReductionCardCheckRequired()){ - asnData.setReductionCardCheckRequired(true); - } else { - asnData.setReductionCardCheckRequired(false); - } - - asnData.setInfoText(data.getInfoText()); - - asnData.setRandomDetailedValidationRequired(UicEncoderUtils.getRestrictedInt(data.getRandomDetailedValidationRequired(), 0,99)); - - asnData.setIdentificationItem(UicEncoderUtils.getUnRestrictedInt(data.getIdentificationItem())); - - asnData.setIncludedTickets(encodeTicketLickList(data.getLinkedTickets())); - - asnData.setIdentificationByCardReference(encodeCardReferences(data.getIdentificationByCardReference())); - - return asnData; - } - - - - /** - * Encode card references. - * - * @param cardReferences the card references - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfCardReferenceType encodeCardReferences(Collection cardReferences) throws EncodingFormatException { - - if (cardReferences == null || cardReferences.isEmpty()) return null; - - SequenceOfCardReferenceType asnList = new SequenceOfCardReferenceType(); - - for (ICardReference card : cardReferences){ - - CardReferenceType asnCard = new CardReferenceType(); - - if (card.getCardId() != null && card.getCardId().length() > 0){ - //only longs allowed - try { - long num = Long.parseLong(card.getCardId()); - asnCard.setCardIdNum(num); - } catch (Exception e ){ - asnCard.setCardIdIA5(card.getCardId()); - } - } - - - asnCard.setCardIssuerNum(UicEncoderUtils.getNum(card.getCardIssuer())); - asnCard.setCardIssuerIA5(UicEncoderUtils.getIA5NonNum(card.getCardIssuer())); - asnCard.setCardName(card.getCardName()); - asnCard.setCardType(UicEncoderUtils.getUnRestrictedInt(card.getCardType())); - - asnCard.setLeadingCardIdNum(UicEncoderUtils.getNum(card.getLeadingCardId())); - asnCard.setLeadingCardIdIA5(UicEncoderUtils.getIA5NonNum(card.getLeadingCardId())); - - asnCard.setTrailingCardIdNum(UicEncoderUtils.getNum(card.getTrailingCardId())); - asnCard.setTrailingCardIdIA5(UicEncoderUtils.getIA5NonNum(card.getTrailingCardId())); - - asnList.add(asnCard); - - } - - - if (asnList.isEmpty()) return null; - - return asnList; - } - - /** - * Encode ticket lick list. - * - * @param linkedTickets the linked tickets - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfTicketLinkType encodeTicketLickList(Collection linkedTickets) throws EncodingFormatException { - - if (linkedTickets == null || linkedTickets.isEmpty()) return null; - - SequenceOfTicketLinkType asnList = new SequenceOfTicketLinkType(); - - for (ITicketLink ticket : linkedTickets){ - - TicketLinkType asnTicket = new TicketLinkType(); - - asnTicket.setIssuerName(ticket.getIssuer()); - - asnTicket.setIssuerPNR(ticket.getIssuerPNR()); - - asnTicket.setProductOwnerNum(UicEncoderUtils.getNum(ticket.getProductOwner())); - asnTicket.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(ticket.getProductOwner())); - - asnTicket.setReferenceNum(UicEncoderUtils.getNum(ticket.getReference())); - asnTicket.setReferenceIA5(UicEncoderUtils.getIA5NonNum(ticket.getReference())); - - if (ticket.getTicketType() != ITicketType.openTicket && ticket.getTicketType() != null){ - asnTicket.setTicketType(TicketType.valueOf(ticket.getTicketType().name())); - } - - if (ticket.getLinkMode() != ILinkMode.issuedTogether && ticket.getLinkMode() != null){ - asnTicket.setLinkMode(LinkMode.valueOf(ticket.getLinkMode().name())); - } - - asnList.add(asnTicket); - } - - if (asnList.isEmpty()) return null; - - return asnList; - } - - /** - * Encode travelers. - * - * @param data the data - * @param issuingDate the issuing date - * @return the traveler data - * @throws EncodingFormatException the encoding format exception - */ - private TravelerData encodeTravelers(ITravelerDetail data,Date issuingDate) throws EncodingFormatException { - - if (data == null) return null; - - TravelerData asnData = new TravelerData(); - - asnData.setGroupName(data.getGroupName()); - - asnData.setPreferedLanguage(data.getPreferredLanguage()); - - if (data.getTravelers()!=null && !data.getTravelers().isEmpty()) { - - SequenceOfTravelerType asnTravelers = new SequenceOfTravelerType(); - - for (ITraveler traveler : data.getTravelers()){ - - TravelerType asnTraveler = encodeTraveler(traveler); - - if (asnTraveler !=null){ - asnTravelers.add(asnTraveler); - } - } - - if (!asnTravelers.isEmpty()) { - asnData.setTraveler(asnTravelers); - } - - } - - return asnData; - } - - /** - * Encode issuing details. - * - * @param data the data - * @return the issuing data - * @throws EncodingFormatException the encoding format exception - */ - private IssuingData encodeIssuingDetails(IIssuingDetail data) throws EncodingFormatException { - - if (data == null){ - throw new EncodingFormatException("Issuind data missing"); - } - - IssuingData asnData = new IssuingData(); - - if (!data.isActivated()){ - asnData.setActivated(false); - } else { - asnData.setActivated(true); - } - - if (!data.isSecurePaperTicket()) { - asnData.setSecurePaperTicket(false); - } else { - asnData.setSecurePaperTicket(true); - } - - asnData.setExtension(encodeExtension(data.getExtension())); - - - asnData.setIssuedOnLine(UicEncoderUtils.getRestrictedInt(data.getIssuedOnLine(), 1, 99999)); - - asnData.setIssuedOnTrainNum(UicEncoderUtils.getNum(data.getIssuedOnTrain())); - asnData.setIssuedOnTrainIA5(UicEncoderUtils.getIA5NonNum(data.getIssuedOnTrain())); - - if (data.getSecurityProvider() != null) { - asnData.setSecurityProviderNum(UicEncoderUtils.getNum(data.getSecurityProvider())); - data.setSecurityProvider(data.getIssuer()); - } else { - asnData.setSecurityProviderNum(UicEncoderUtils.getNum(data.getIssuer())); - } - - if (data.getIssuer()!= null && !data.getIssuer().equals(data.getSecurityProvider()) ){ - asnData.setIssuerNum(UicEncoderUtils.getNum(data.getIssuer())); - asnData.setIssuerIA5(UicEncoderUtils.getIA5NonNum(data.getIssuer())); - } - - asnData.setIssuerName(data.getIssuerName()); - asnData.setIssuerPNR(UicEncoderUtils.getIA5(data.getIssuerPNR())); - - - asnData.setIssuingDate(data.getIssuingDate()); - - if (data.isSpecimen()){ - asnData.setSpecimen(true); - } else { - asnData.setSpecimen(false); - } - - if (data.getPointOfSale()!= null){ - asnData.setPointOfSale(encodeGeoCoordinate(data.getPointOfSale())); - } - - return asnData; - } - - /** - * Encode geo coordinate. - * - * @param point the point - * @return the geo coordinate type - */ - private GeoCoordinateType encodeGeoCoordinate(IGeoCoordinate point) { - - if (point == null) return null; - - GeoCoordinateType asnPoint = new GeoCoordinateType(); - - asnPoint.setLatitude(point.getLatitude()); - asnPoint.setLongitude(point.getLongitude()); - - if (point.getUnit() != IGeoUnitType.milliDegree && point.getUnit() != null){ - asnPoint.setGeoUnit(GeoUnitType.valueOf(point.getUnit().name())); - } - - if (point.getAccuracy() != null) { - asnPoint.setAccuracy(GeoUnitType.valueOf(point.getAccuracy().name())); - } - - if (point.getHemisphereLatitude() != IHemisphereLatitudeType.east && point.getHemisphereLatitude() != null) { - asnPoint.setHemisphereLatitude(HemisphereLatitudeType.valueOf(point.getHemisphereLatitude().name())); - } - - if (point.getHemisphereLongitude() != IHemisphereLongitudeType.north && point.getHemisphereLongitude() != null) { - asnPoint.setHemisphereLongitude(HemisphereLongitudeType.valueOf(point.getHemisphereLongitude().name())); - } - - if (point.getSystem() != IGeoCoordinateSystemType.wgs84 && point.getSystem() != null){ - asnPoint.setCoordinateSystem(GeoCoordinateSystemType.valueOf(point.getSystem().name())); - } - - return asnPoint; - } - - /** - * Encode customer card. - * - * @param document the customer card - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData encodeCustomerCard(ICustomerCard document,Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - CustomerCardData asnData = new CustomerCardData(); - asnDocument.getTicket().setCustomerCard(asnData); - - - if (document.getCardId() != null && document.getCardId().length() > 0){ - //only longs allowed - try { - long num = Long.parseLong(document.getCardId()); - asnData.setCardIdNum(num); - } catch (Exception e ){ - asnData.setCardIdIA5(document.getCardId()); - } - } - - - asnData.setCardType(UicEncoderUtils.getRestrictedInt(document.getCardType(),1,1000)); - - asnData.setCardTypeDescr(document.getCardTypeDescr()); - - asnData.setClassCode(convertTravelClass(document.getClassCode())); - - if (document.getCustomer()!=null){ - asnData.setCustomer(encodeTraveler(document.getCustomer())); - } - - asnData.setCustomerStatus(UicEncoderUtils.getUnRestrictedInt(document.getCustomerStatus())); - - asnData.setCustomerStatusDescr(document.getCustomerStatusDescr()); - - asnData.setExtension(encodeExtension(document.getExtension())); - - asnData.setIncludedServices(SequenceOfUnrestrictedLong.getSequence(UicEncoderUtils.getUnRestrictedIntList(document.getIncludedServices()))); - - asnData.setValidity(document.getValidFrom(), document.getValidUntil()); - - return asnDocument; - } - - private TokenType encodeToken(IToken token) throws EncodingFormatException { - TokenType asnToken = new TokenType(); - asnToken.setToken(token.getToken()); - asnToken.setTokenProviderNum(UicEncoderUtils.getNum(token.getTokenProvider())); - asnToken.setTokenProviderIA5(UicEncoderUtils.getIA5NonNum(token.getTokenProvider())); - asnToken.setTokenSpecification(token.getTokenSpecification()); - return asnToken; - } - - - - - private VatDetailType encodeVatDetail(IVatDetail vatDetail) { - - if (vatDetail == null) return null; - - VatDetailType asnVatDetail = new VatDetailType(); - - asnVatDetail.setAmount(vatDetail.getAmount()); - asnVatDetail.setCountry(new Long(vatDetail.getCountry())); - asnVatDetail.setPercentage(new Long(vatDetail.getPercentage())); - asnVatDetail.setVatId(vatDetail.getVatId()); - - return asnVatDetail; - - } - - /** - * Encode traveler. - * - * @param traveler the traveler - * @return the traveler type - * @throws EncodingFormatException the encoding format exception - */ - private TravelerType encodeTraveler(ITraveler traveler) throws EncodingFormatException { - - if (traveler == null) return null; - - TravelerType asnTraveler = new TravelerType(); - - asnTraveler.setCountryOfResidence(UicEncoderUtils.getRestrictedInt(traveler.getCountryOfResidence(), 1, 999)); - asnTraveler.setCountryOfPassport(UicEncoderUtils.getRestrictedInt(traveler.getPassportCountry(), 1, 999)); - asnTraveler.setCountryOfIdCard(UicEncoderUtils.getRestrictedInt(traveler.getIDCardCountry(), 1, 999)); - - - asnTraveler.setCustomerIdNum(UicEncoderUtils.getNum(traveler.getCustomerId())); - asnTraveler.setCustomerIdIA5(UicEncoderUtils.getIA5NonNum(traveler.getCustomerId())); - - asnTraveler.setDateOfBirth(traveler.getDateOfBirth()); - - asnTraveler.setFirstName(traveler.getFirstName()); - asnTraveler.setSecondName(traveler.getSecondName()); - asnTraveler.setLastName(traveler.getLastName()); - if (traveler.getGender() != null) { - asnTraveler.setGender(GenderType.valueOf(traveler.getGender().name())); - } - asnTraveler.setIdCard(UicEncoderUtils.getIA5(traveler.getIdCard())); - asnTraveler.setPassportId(UicEncoderUtils.getIA5(traveler.getPassportId())); - asnTraveler.setTitle(UicEncoderUtils.getIA5(traveler.getTitle())); - - if (traveler.getPassengerType() != null) { - asnTraveler.setPassengerType(PassengerType.valueOf(traveler.getPassengerType().name())); - } - - asnTraveler.setPassengerWithReducedMobility(traveler.isPassengerWithReducedMobility()); - if (traveler.isTicketHolder()){ - asnTraveler.setTicketHolder(true); - } else { - asnTraveler.setTicketHolder(false); - } - - if (traveler.getStatusCollection()!= null && !traveler.getStatusCollection().isEmpty()){ - - SequenceOfCustomerStatusType asnList = new SequenceOfCustomerStatusType(); - - for (ICustomerStatusDescription status : traveler.getStatusCollection() ) { - asnList.add(mapCustomerStatusType(status)); - } - if (!asnList.isEmpty()) { - asnTraveler.setStatus(asnList); - } - } - - - return asnTraveler; - } - - /** - * Map customer status type. - * - * @param status the status - * @return the customer status type - * @throws EncodingFormatException the encoding format exception - */ - private CustomerStatusType mapCustomerStatusType(ICustomerStatusDescription status) throws EncodingFormatException { - - CustomerStatusType asnStatus = new CustomerStatusType(); - - if (status.getStatus() > 0) { - asnStatus.setCustomerStatus(new Long(status.getStatus())); - } - asnStatus.setCustomerStatusDescr(status.getDescription()); - asnStatus.setStatusProviderIA5(UicEncoderUtils.getIA5NonNum(status.getStatusProvider())); - asnStatus.setStatusProviderNum(UicEncoderUtils.getNum(status.getStatusProvider())); - - return asnStatus; - } - - /** - * Encode extension. - * - * @param extension the extension - * @return the extension data - * @throws EncodingFormatException the encoding format exception - */ - private ExtensionData encodeExtension(IExtension extension) throws EncodingFormatException { - - if (extension==null) return null; - - if (extension.getBinarydata() == null || extension.getBinarydata().length == 0) { - throw new EncodingFormatException("Extension does not include data"); - } - - if (extension.getId() == null || extension.getId().length() == 0) { - throw new EncodingFormatException("Extension does not include id"); - } - - ExtensionData asnExtension = new ExtensionData(); - - asnExtension.setExtensionData(extension.getBinarydata()); - asnExtension.setExtensionId(UicEncoderUtils.getIA5(extension.getId())); - - return asnExtension; - } - - private TravelClassType convertTravelClass(ITravelClassType apiClass){ - - if (apiClass == null) return null; - - if (apiClass == ITravelClassType.premiumFirst || apiClass == ITravelClassType.standardFirst){ - return TravelClassType.first; - } - - if (apiClass == ITravelClassType.premiumSecond || apiClass == ITravelClassType.standardSecond){ - return TravelClassType.second; - } - - - - - - return TravelClassType.valueOf(apiClass.name()); - - - } - - -} diff --git a/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoderV2.java b/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoderV2.java deleted file mode 100644 index 61bdba1..0000000 --- a/src/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoderV2.java +++ /dev/null @@ -1,2296 +0,0 @@ -/* - * - */ -package org.uic.barcode.ticket.api.utils; - -import java.util.Collection; -import java.util.Date; - -import org.uic.barcode.asn1.datatypes.Asn1BigInteger; -import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; -import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; -import org.uic.barcode.asn1.datatypesimpl.SequenceOfUnrestrictedLong; -import org.uic.barcode.ticket.EncodingFormatException; -import org.uic.barcode.ticket.api.asn.omv2.BerthDetailData; -import org.uic.barcode.ticket.api.asn.omv2.BerthTypeType; -import org.uic.barcode.ticket.api.asn.omv2.CarCarriageReservationData; -import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.CodeTableType; -import org.uic.barcode.ticket.api.asn.omv2.CompartmentDetailsType; -import org.uic.barcode.ticket.api.asn.omv2.CompartmentGenderType; -import org.uic.barcode.ticket.api.asn.omv2.ConfirmationTypeType; -import org.uic.barcode.ticket.api.asn.omv2.ControlData; -import org.uic.barcode.ticket.api.asn.omv2.CountermarkData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerCardData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.DelayConfirmation; -import org.uic.barcode.ticket.api.asn.omv2.DeltaCoordinates; -import org.uic.barcode.ticket.api.asn.omv2.DocumentData; -import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.FIPTicketData; -import org.uic.barcode.ticket.api.asn.omv2.GenderType; -import org.uic.barcode.ticket.api.asn.omv2.GeoCoordinateSystemType; -import org.uic.barcode.ticket.api.asn.omv2.GeoCoordinateType; -import org.uic.barcode.ticket.api.asn.omv2.GeoUnitType; -import org.uic.barcode.ticket.api.asn.omv2.HemisphereLatitudeType; -import org.uic.barcode.ticket.api.asn.omv2.HemisphereLongitudeType; -import org.uic.barcode.ticket.api.asn.omv2.IncludedOpenTicketType; -import org.uic.barcode.ticket.api.asn.omv2.IssuingData; -import org.uic.barcode.ticket.api.asn.omv2.LineType; -import org.uic.barcode.ticket.api.asn.omv2.LinkMode; -import org.uic.barcode.ticket.api.asn.omv2.LoadingDeckType; -import org.uic.barcode.ticket.api.asn.omv2.LuggageRestrictionType; -import org.uic.barcode.ticket.api.asn.omv2.OpenTicketData; -import org.uic.barcode.ticket.api.asn.omv2.ParkingGroundData; -import org.uic.barcode.ticket.api.asn.omv2.PassData; -import org.uic.barcode.ticket.api.asn.omv2.PassengerType; -import org.uic.barcode.ticket.api.asn.omv2.PlacesType; -import org.uic.barcode.ticket.api.asn.omv2.PolygoneType; -import org.uic.barcode.ticket.api.asn.omv2.PriceTypeType; -import org.uic.barcode.ticket.api.asn.omv2.RegionalValidityType; -import org.uic.barcode.ticket.api.asn.omv2.RegisteredLuggageType; -import org.uic.barcode.ticket.api.asn.omv2.ReservationData; -import org.uic.barcode.ticket.api.asn.omv2.ReturnRouteDescriptionType; -import org.uic.barcode.ticket.api.asn.omv2.RoofRackType; -import org.uic.barcode.ticket.api.asn.omv2.RouteSectionType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfBerthDetailData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCarrierNum; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCountries; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDeltaCoordinates; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfIncludedOpenTicketType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfPlaceNum; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfRegionalValidityType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfRegisteredLuggageType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfServiceBrands; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTariffType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTransportTypes; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerId; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfViaStationType; -import org.uic.barcode.ticket.api.asn.omv2.SeriesDetailType; -import org.uic.barcode.ticket.api.asn.omv2.ServiceType; -import org.uic.barcode.ticket.api.asn.omv2.StationPassageData; -import org.uic.barcode.ticket.api.asn.omv2.TariffType; -import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv2.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv2.TicketType; -import org.uic.barcode.ticket.api.asn.omv2.TimeRangeType; -import org.uic.barcode.ticket.api.asn.omv2.TokenType; -import org.uic.barcode.ticket.api.asn.omv2.TrainLinkType; -import org.uic.barcode.ticket.api.asn.omv2.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv2.TravelerData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerType; -import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; -import org.uic.barcode.ticket.api.asn.omv2.ValidityPeriodDetailType; -import org.uic.barcode.ticket.api.asn.omv2.ValidityPeriodType; -import org.uic.barcode.ticket.api.asn.omv2.VatDetailType; -import org.uic.barcode.ticket.api.asn.omv2.ViaStationType; -import org.uic.barcode.ticket.api.asn.omv2.VoucherData; -import org.uic.barcode.ticket.api.asn.omv2.ZoneType; -import org.uic.barcode.ticket.api.spec.IBerth; -import org.uic.barcode.ticket.api.spec.ICarCarriageReservation; -import org.uic.barcode.ticket.api.spec.ICardReference; -import org.uic.barcode.ticket.api.spec.ICompartmentDetails; -import org.uic.barcode.ticket.api.spec.ICompartmentGenderType; -import org.uic.barcode.ticket.api.spec.IControlDetail; -import org.uic.barcode.ticket.api.spec.ICounterMark; -import org.uic.barcode.ticket.api.spec.ICustomerCard; -import org.uic.barcode.ticket.api.spec.ICustomerStatusDescription; -import org.uic.barcode.ticket.api.spec.IDelayConfirmation; -import org.uic.barcode.ticket.api.spec.IDocumentData; -import org.uic.barcode.ticket.api.spec.IExtension; -import org.uic.barcode.ticket.api.spec.IFipTicket; -import org.uic.barcode.ticket.api.spec.IGeoCoordinate; -import org.uic.barcode.ticket.api.spec.IGeoCoordinateSystemType; -import org.uic.barcode.ticket.api.spec.IGeoUnitType; -import org.uic.barcode.ticket.api.spec.IHemisphereLatitudeType; -import org.uic.barcode.ticket.api.spec.IHemisphereLongitudeType; -import org.uic.barcode.ticket.api.spec.IIncludedOpenTicket; -import org.uic.barcode.ticket.api.spec.IIssuingDetail; -import org.uic.barcode.ticket.api.spec.ILine; -import org.uic.barcode.ticket.api.spec.ILinkMode; -import org.uic.barcode.ticket.api.spec.ILoadingDeckType; -import org.uic.barcode.ticket.api.spec.ILuggageRestriction; -import org.uic.barcode.ticket.api.spec.IOpenTicket; -import org.uic.barcode.ticket.api.spec.IParkingGround; -import org.uic.barcode.ticket.api.spec.IPass; -import org.uic.barcode.ticket.api.spec.IPlaces; -import org.uic.barcode.ticket.api.spec.IPolygone; -import org.uic.barcode.ticket.api.spec.IPriceTypeType; -import org.uic.barcode.ticket.api.spec.IRegionalValidity; -import org.uic.barcode.ticket.api.spec.IRegisteredLuggage; -import org.uic.barcode.ticket.api.spec.IReservation; -import org.uic.barcode.ticket.api.spec.IReturnRouteDescription; -import org.uic.barcode.ticket.api.spec.IRoofRackType; -import org.uic.barcode.ticket.api.spec.IRouteSection; -import org.uic.barcode.ticket.api.spec.ISeriesDataDetails; -import org.uic.barcode.ticket.api.spec.IServiceType; -import org.uic.barcode.ticket.api.spec.IStationCodeTable; -import org.uic.barcode.ticket.api.spec.IStationPassage; -import org.uic.barcode.ticket.api.spec.ITariff; -import org.uic.barcode.ticket.api.spec.ITicketLink; -import org.uic.barcode.ticket.api.spec.ITicketType; -import org.uic.barcode.ticket.api.spec.ITimeRange; -import org.uic.barcode.ticket.api.spec.IToken; -import org.uic.barcode.ticket.api.spec.ITrainLink; -import org.uic.barcode.ticket.api.spec.ITravelClassType; -import org.uic.barcode.ticket.api.spec.ITraveler; -import org.uic.barcode.ticket.api.spec.ITravelerDetail; -import org.uic.barcode.ticket.api.spec.IUicRailTicket; -import org.uic.barcode.ticket.api.spec.IValidityDetails; -import org.uic.barcode.ticket.api.spec.IValidityRange; -import org.uic.barcode.ticket.api.spec.IVatDetail; -import org.uic.barcode.ticket.api.spec.IViaStation; -import org.uic.barcode.ticket.api.spec.IVoucher; -import org.uic.barcode.ticket.api.spec.IZone; - -/** - * The Class Api2OpenAsnEncoder. - */ -public class Api2OpenAsnEncoderV2 { - - /** - * encode to asn1 model. - * - * @param uicTicket the uic ticket - * @return the encoded byte array - * @throws EncodingFormatException the encoding format exception - */ - public byte[] encode(IUicRailTicket uicTicket) throws EncodingFormatException { - - UicRailTicketData asnUicRailTicketData = populateToAsn1Model(uicTicket); - - return asnUicRailTicketData.encode(); - - } - - - /** - * Populate asn1 model. - * - * @param uicTicket the uic ticket - * @return the org.uic.ticket.asn.om. uic rail ticket data - * @throws EncodingFormatException the encoding format exception - */ - public UicRailTicketData populateToAsn1Model(IUicRailTicket uicTicket) throws EncodingFormatException { - - UicRailTicketData asnTicket = new UicRailTicketData(); - - if (uicTicket.getIssuerDetails() != null) { - asnTicket.setIssuingDetail(encodeIssuingDetails(uicTicket.getIssuerDetails())); - } - - - if (uicTicket.getControlDetails() != null) { - asnTicket.setControlDetail(encodeControlDetails(uicTicket.getControlDetails(), uicTicket.getIssuerDetails().getIssuingDate())); - } - - - if (uicTicket.getExtensions() != null && !uicTicket.getExtensions().isEmpty()){ - - SequenceOfExtensionData asnList = new SequenceOfExtensionData(); - for (IExtension extension : uicTicket.getExtensions()){ - ExtensionData asnExtension = encodeExtension(extension); - if (asnExtension!= null) { - asnList.add(asnExtension); - } - } - if (!asnList.isEmpty()){ - asnTicket.setExtension(asnList); - } - - - } - - - if (uicTicket.getTravelerDetails() != null) { - asnTicket.setTravelerDetail(encodeTravelers(uicTicket.getTravelerDetails(),uicTicket.getIssuerDetails().getIssuingDate() )); - } - - if (uicTicket.getDocumentData() != null && !uicTicket.getDocumentData().isEmpty()) { - - SequenceOfDocumentData documents = new SequenceOfDocumentData(); - - for (IDocumentData document : uicTicket.getDocumentData()){ - - DocumentData asnDocument = null; - - if (document instanceof IReservation) { - asnDocument = convertReservation((IReservation) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IOpenTicket) { - asnDocument = convertOpenTicket((IOpenTicket) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof ICarCarriageReservation) { - asnDocument = convertCarCarriageReservation((ICarCarriageReservation) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IFipTicket) { - asnDocument = convertFipTicket((IFipTicket) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IPass) { - asnDocument = convertPass((IPass) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IVoucher) { - asnDocument = convertVoucher((IVoucher) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof ICounterMark) { - asnDocument = convertCounterMark((ICounterMark) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IParkingGround) { - asnDocument = convertParkingGround((IParkingGround) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof IStationPassage) { - asnDocument = convertStationPassage((IStationPassage) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - if (document instanceof ICustomerCard) { - asnDocument = encodeCustomerCard((ICustomerCard) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - - if (document instanceof IDelayConfirmation) { - asnDocument = encodeDelayConfirmation((IDelayConfirmation) document , uicTicket.getIssuerDetails().getIssuingDate()); - } - - - if (asnDocument!= null && document.getToken()!= null) { - asnDocument.setToken(encodeToken(document.getToken())); - } - - if (asnDocument != null) { - documents.add(asnDocument); - } - } - asnTicket.setTransportDocument(documents); - } - - - return asnTicket; - } - - private DocumentData encodeDelayConfirmation(IDelayConfirmation document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - DelayConfirmation asnData = new DelayConfirmation(); - asnDocument.getTicket().setDelayConfirmation(asnData); - - asnData.setTrainIA5(UicEncoderUtils.getIA5NonNum(document.getTrain())); - asnData.setTrainNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getTrain()))); - - asnData.setReferenceNum(UicEncoderUtils.getNum(document.getReference())); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - asnData.setStationIA5(UicEncoderUtils.getIA5NonNum(document.getStation())); - asnData.setStationNum(UicEncoderUtils.getNum(document.getStation())); - - - asnData.setPlannedArrivalDate(document.getArrivalDate()); - asnData.setDepartureUTCOffset(document.getArrivalUTCoffset()); - - asnData.setAffectedTickets(encodeTicketLickList(document.getLinkedTickets())); - - asnData.setConfirmationType(ConfirmationTypeType.values()[document.getConfirmationType()]); - - asnData.setDelay(new Long(document.getDelay())); - - asnData.setTrainCancelled(document.isTrainCancelled()); - - - asnData.setInfoText(document.getInfoText()); - - asnData.setStationNameUTF8(document.getStationName()); - - asnData.setExtension(encodeExtension(document.getExtension())); - - return asnDocument; - } - - - /** - * Convert car carriage reservation. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertCarCarriageReservation( ICarCarriageReservation document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - CarCarriageReservationData asnData = new CarCarriageReservationData(); - asnDocument.getTicket().setCarCarriageReservation(asnData); - - asnData.setTrainIA5(UicEncoderUtils.getIA5NonNum(document.getTrain())); - asnData.setTrainNum(UicEncoderUtils.getNum(document.getTrain())); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setReferenceNum(UicEncoderUtils.getNum(document.getReference())); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUICReservation && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setCarrierNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getCarriers()))); - asnData.setCarrierIA5(UicEncoderUtils.getIA5NonNumList(document.getCarriers())); - - asnData.setExtension(encodeExtension(document.getExtension())); - - asnData.setCompartmentDetails(encodeCompartmentDetails(document.getCompartmentDetails())); - - - if (document.getPriceType()!= IPriceTypeType.travelPrice && document.getPriceType() != null){ - asnData.setPriceType(PriceTypeType.valueOf(document.getPriceType().name())); - } - - - if (document.getServiceBrand()!= null) { - asnData.setServiceBrand(UicEncoderUtils.getRestrictedInt(document.getServiceBrand().getServiceBrand(),1,9999)); - asnData.setServiceBrandAbrUTF8(document.getServiceBrand().getServiceBrandAbbreviation()); - asnData.setServiceBrandNameUTF8(document.getServiceBrand().getServiceBrandDescription()); - - } - if (document.getStationCodeTable() != IStationCodeTable.stationUICReservation && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnData.setFromStationNameUTF8(document.getFromStationName()); - asnData.setToStationNameUTF8(document.getToStationName()); - - - asnData.setAttachedBicycles(UicEncoderUtils.getRestrictedInt(document.getAttachedBicycles(),1,5)); - asnData.setAttachedBoats(UicEncoderUtils.getRestrictedInt(document.getAttachedBoats(),1,2)); - asnData.setAttachedSurfboards(UicEncoderUtils.getRestrictedInt(document.getAttachedSurfboards(),1,5)); - - if (document.getLoadingDeck() != ILoadingDeckType.upper && document.getLoadingDeck() != null){ - asnData.setLoadingDeck(LoadingDeckType.valueOf(document.getLoadingDeck().name())); - } - - asnData.setLoadingListEntry(UicEncoderUtils.getRestrictedInt(document.getAttachedSurfboards(),1,200)); - - asnData.setBoatCategory(UicEncoderUtils.getRestrictedInt(document.getBoatCategory(),1,6)); - asnData.setCarCategory(UicEncoderUtils.getRestrictedInt(document.getCarCategory(),1,9)); - asnData.setCoach(UicEncoderUtils.getIA5(document.getCoach())); - - asnData.setRoofRackHeight(UicEncoderUtils.getRestrictedInt(document.getRoofRackHeight(),1,99)); - - if (document.getRoofRackType()!= IRoofRackType.norack && document.getRoofRackType() != null) { - asnData.setRoofRackType(RoofRackType.valueOf(document.getRoofRackType().name())); - } - - if (document.getTariff() != null) { - asnData.setTariff(encodeTariff(document.getTariff())); - } - asnData.setNumberPlate(UicEncoderUtils.getIA5(document.getNumberPlate())); - asnData.setPlace(UicEncoderUtils.getIA5(document.getPlace())); - - if (document.isTextileRoof() ) { - asnData.setTextileRoof(true); - } else { - asnData.setTextileRoof(false); - } - - asnData.setTrailerPlate(UicEncoderUtils.getIA5(document.getTrailerPlate())); - - asnData.setLoadingDates(document.getBeginLoading(),document.getEndLoading(), issuingDate); - - asnData.setLoadingUTCOffset(document.getLoadingTimeUTCoffset()); - - asnData.setPrice(document.getPrice()); - - if (document.getVatDetails() != null && !document.getVatDetails().isEmpty()){ - for (IVatDetail vat : document.getVatDetails()) { - asnData.addVatDetail(encodeVatDetail(vat)); - } - } - - - return asnDocument; - } - - - /** - * Encode places. - * - * @param places the places - * @return the places type - * @throws EncodingFormatException the encoding format exception - */ - private PlacesType encodePlaces(IPlaces places) throws EncodingFormatException { - - if (places == null) { - return null; - } - - PlacesType asnData = new PlacesType(); - - asnData.setCoach(UicEncoderUtils.getIA5(places.getCoach())); - asnData.setPlaceDescription(places.getPlaceDescription()); - asnData.setPlaceString(UicEncoderUtils.getIA5(places.getPlaceString())); - asnData.setPlaceNum(SequenceOfPlaceNum.getSequence(UicEncoderUtils.getNumList(places.getPlaces()))); - asnData.setPlaceIA5(UicEncoderUtils.getIA5NonNumList(places.getPlaces())); - - return asnData; - } - - - /** - * Encode compartment details. - * - * @param compartmentDetails the compartment details - * @return the compartment details type - * @throws EncodingFormatException the encoding format exception - */ - private CompartmentDetailsType encodeCompartmentDetails(ICompartmentDetails compartmentDetails) throws EncodingFormatException { - - if (compartmentDetails == null) { - return null; - } - CompartmentDetailsType asnData = new CompartmentDetailsType(); - - asnData.setCoachType(UicEncoderUtils.getRestrictedInt(compartmentDetails.getCoachType(), 1,99)); - asnData.setCoachTypeDescr(compartmentDetails.getCoachTypeDescr()); - asnData.setCompartmentType(UicEncoderUtils.getRestrictedInt(compartmentDetails.getCompartmentType(), 1,99)); - asnData.setCompartmentTypeDescr(compartmentDetails.getCompartmentTypeDescr()); - asnData.setSpecialAllocation(UicEncoderUtils.getRestrictedInt(compartmentDetails.getSpecialAllocation(), 1,99)); - asnData.setSpecialAllocationDescr(compartmentDetails.getSpecialAllocationDescr()); - - return asnData; - } - - /** - * Encode berths. - * - * @param berths the berths - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfBerthDetailData encodeBerths(Collection berths) throws EncodingFormatException { - - if (berths == null || berths.isEmpty()) { - return null; - } - SequenceOfBerthDetailData asnList = new SequenceOfBerthDetailData(); - - for ( IBerth berth : berths){ - BerthDetailData asnBerth = new BerthDetailData(); - - if (berth.getType() != null) { - asnBerth.setBerthType(BerthTypeType.valueOf(berth.getType().name())); - } - - if (berth.getGender()!= ICompartmentGenderType.family && berth.getGender() != null) { - asnBerth.setGender(CompartmentGenderType.valueOf(berth.getGender().name())); - } - - asnBerth.setNumberOfBerths(UicEncoderUtils.getRestrictedInt(berth.getNumberOfBerths(), 1 , 999 )); - - asnList.add(asnBerth); - } - - if (asnList.isEmpty()) { - return null; - } - return asnList; - } - - /** - * Convert reservation. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertReservation(IReservation document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - ReservationData asnData = new ReservationData(); - asnDocument.getTicket().setReservation(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setReferenceNum(UicEncoderUtils.getNum(document.getReference())); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - asnData.setCarrierNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getCarriers()))); - asnData.setCarrierIA5(UicEncoderUtils.getIA5NonNumList(document.getCarriers())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUICReservation && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnData.setFromStationNameUTF8(document.getFromStationName()); - asnData.setToStationNameUTF8(document.getToStationName()); - - asnData.setTrainIA5(UicEncoderUtils.getIA5NonNum(document.getTrain())); - asnData.setTrainNum(UicEncoderUtils.getNum(document.getTrain())); - - asnData.setTariff(encodeTariffCollection(document.getTariffs())); - - asnData.setDepartureArrivalDates(document.getDepartureDate(),document.getArrivalDate(), issuingDate); - - if (document.getDepartureUTCoffset() != null) { - asnData.setDepartureUTCOffset(document.getDepartureUTCoffset()); - if (document.getArrivalUTCoffset() != null && document.getArrivalUTCoffset() != document.getDepartureUTCoffset()){ - asnData.setArrivalUTCOffset(document.getArrivalUTCoffset()); - } - } - - - - if (document.getClassCode() != ITravelClassType.second && document.getClassCode() != null){ - asnData.setClassCode(TravelClassType.valueOf(document.getClassCode().name())); - } - - asnData.setBerth(encodeBerths(document.getBerths())); - - asnData.setCompartmentDetails(encodeCompartmentDetails(document.getCompartmentDetails())); - - asnData.setLuggage(encodeLuggage(document.getLuggageRestriction())); - - asnData.setNumberOfOverbooked(UicEncoderUtils.getRestrictedInt(document.getNumberOfOverbooked(), 1, 200)); - asnData.setNumberOfSupplements(UicEncoderUtils.getRestrictedInt(document.getNumberOfSupplements(), 1, 200)); - - if (document.getPriceType()!= IPriceTypeType.travelPrice && document.getPriceType() != null){ - asnData.setPriceType(PriceTypeType.valueOf(document.getPriceType().name())); - } - asnData.setTypeOfSupplement(UicEncoderUtils.getRestrictedInt(document.getTypeOfSupplement(), 1, 9)); - - asnData.setPlaces(encodePlaces(document.getPlaces())); - asnData.setBicyclePlaces(encodePlaces(document.getBicyclePlaces())); - - - if (document.getService() != IServiceType.seat && document.getService() != null) { - asnData.setService(ServiceType.valueOf(document.getService().name())); - } - - if (document.getServiceBrand()!= null) { - asnData.setServiceBrand(UicEncoderUtils.getRestrictedInt(document.getServiceBrand().getServiceBrand(),1,9999)); - asnData.setServiceBrandAbrUTF8(document.getServiceBrand().getServiceBrandAbbreviation()); - asnData.setServiceBrandNameUTF8(document.getServiceBrand().getServiceBrandDescription()); - - } - - if (document.getServiceLevel() != null && document.getServiceLevel().length() > 2) { - throw new EncodingFormatException("Service level too long"); - } - asnData.setServiceLevel(UicEncoderUtils.getIA5(document.getServiceLevel())); - - asnData.setPrice(document.getPrice()); - - if (document.getVatDetails() != null && !document.getVatDetails().isEmpty()){ - for (IVatDetail vat : document.getVatDetails()) { - asnData.addVatDetail(encodeVatDetail(vat)); - } - } - - return asnDocument; - } - - /** - * Encode included addons. - * - * @param tickets the tickets - * @param issuingDate the issuing date - * @param classCode the class code - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfIncludedOpenTicketType encodeIncludedAddons(Collection tickets, Date issuingDate, ITravelClassType classCode) throws EncodingFormatException { - - if (tickets == null || tickets.isEmpty()) { - return null; - } - SequenceOfIncludedOpenTicketType asnList = new SequenceOfIncludedOpenTicketType(); - - for ( IIncludedOpenTicket ticket : tickets){ - - IncludedOpenTicketType asnTicket = encodeIncludedOpenTicket(ticket,issuingDate,classCode); - if (asnTicket!=null) { - asnList.add(asnTicket); - } - } - - if (asnList.isEmpty()) { - return null; - } - return asnList; - } - - - /** - * Encode included open ticket. - * - * @param document the document - * @param issuingDate the issuing date - * @param classCode the class code - * @return the included open ticket type - * @throws EncodingFormatException the encoding format exception - */ - private IncludedOpenTicketType encodeIncludedOpenTicket(IIncludedOpenTicket document, Date issuingDate, ITravelClassType classCode) throws EncodingFormatException { - - if (document == null) return null; - - IncludedOpenTicketType asnData = new IncludedOpenTicketType(); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setIncludedCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getIncludedCarriers()))); - asnData.setIncludedCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getIncludedCarriers())); - - asnData.setExcludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getExcludedServiceBrands(),1,9999))); - asnData.setIncludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getIncludedServiceBrands(),1,9999))); - - asnData.setExcludedTransportTypes(SequenceOfTransportTypes.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getExcludedTransportTypes(),0,31))); - asnData.setIncludedTransportTypes(SequenceOfTransportTypes.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getIncludedTransportTypes(),0,31))); - - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getValidFromUTCoffset() != null) { - asnData.setValidFromUTCOffset(document.getValidFromUTCoffset()); - if (document.getValidUntilUTCoffset() != null && document.getValidUntilUTCoffset() != document.getValidFromUTCoffset()){ - asnData.setValidUntilUTCOffset(document.getValidUntilUTCoffset()); - } - } - - - if (document.getTariffs() != null && document.getTariffs().size() > 0){ - asnData.setTariffs(encodeTariffCollection(document.getTariffs())); - } - - if (document.getClassCode() != classCode && document.getClassCode() != null){ - asnData.setClassCode(TravelClassType.valueOf(document.getClassCode().name())); - } - if (document.getExternalIssuer() > 0) { - asnData.setExternalIssuerId(new Long(document.getExternalIssuer())); - } - - if (document.getAuthorizationCode() > 0) { - asnData.setIssuerAutorizationId(new Long(document.getAuthorizationCode())); - } - - if (document.getValidRegionList()!= null && document.getValidRegionList().size() > 0) { - asnData.setValidRegion(encodeRegionCollection(document.getValidRegionList(), issuingDate)); - } - - return asnData; - } - - /** - * Encode return description. - * - * @param route the route - * @param issuingDate the issuing date - * @return the return route description type - * @throws EncodingFormatException the encoding format exception - */ - private ReturnRouteDescriptionType encodeReturnDescription(IReturnRouteDescription route, Date issuingDate) throws EncodingFormatException { - - if (route == null) return null; - - ReturnRouteDescriptionType asnData = new ReturnRouteDescriptionType(); - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(route.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(route.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(route.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(route.getToStation())); - - asnData.setFromStationNameUTF8(route.getFromStationName()); - asnData.setToStationNameUTF8(route.getToStationName()); - - if (route.getValidRegionList()!= null && route.getValidRegionList().size() > 0) { - asnData.setValidReturnRegion(encodeRegionCollection(route.getValidRegionList(), issuingDate)); - } - - if (route.getValidRegionDesc() != null && route.getValidRegionDesc().length() > 0){ - asnData.setValidReturnRegionDesc(route.getValidRegionDesc()); - } - - return asnData; - } - - /** - * Encode luggage. - * - * @param luggageRestriction the luggage restriction - * @return the luggage restriction type - * @throws EncodingFormatException the encoding format exception - */ - private LuggageRestrictionType encodeLuggage(ILuggageRestriction luggageRestriction) throws EncodingFormatException { - - if (luggageRestriction== null) return null; - - LuggageRestrictionType asnData = new LuggageRestrictionType(); - - asnData.setMaxHandLuggagePieces(UicEncoderUtils.getRestrictedIntWithDefault(luggageRestriction.getMaxHandLuggagePieces(),1,99,3)); - - asnData.setMaxNonHandLuggagePieces(UicEncoderUtils.getRestrictedIntWithDefault(luggageRestriction.getMaxNonHandLuggagePieces(),1,99,1)); - - if (luggageRestriction.getRegisteredLuggage() != null && luggageRestriction.getRegisteredLuggage().size() > 0) { - asnData.setRegisteredLuggage(encodeRegisteredLuggage(luggageRestriction.getRegisteredLuggage())); - } - - return asnData; - } - - /** - * Encode registered luggage. - * - * @param registeredLuggage the registered luggage - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfRegisteredLuggageType encodeRegisteredLuggage(Collection registeredLuggage) throws EncodingFormatException { - if (registeredLuggage== null || registeredLuggage.isEmpty()) { - return null; - } - SequenceOfRegisteredLuggageType asnList = new SequenceOfRegisteredLuggageType(); - - for ( IRegisteredLuggage luggage : registeredLuggage){ - RegisteredLuggageType asnLuggage = new RegisteredLuggageType(); - asnLuggage.setMaxSize(UicEncoderUtils.getRestrictedInt(luggage.getMaxSize(),1,300)); - asnLuggage.setMaxWeight(UicEncoderUtils.getRestrictedInt(luggage.getMaxWeight(),1,99)); - asnLuggage.setRegistrationId(luggage.getRegistrationId()); - - asnList.add(asnLuggage); - } - - if (asnList.isEmpty()){ - return null; - } - return asnList; - } - - /** - * Convert open ticket. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertOpenTicket(IOpenTicket document,Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - OpenTicketData asnData = new OpenTicketData(); - asnTicket.setOpenTicket(asnData); - - asnDocument.setTicket(asnTicket); - asnTicket.setOpenTicket(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - asnData.setReferenceNum(UicEncoderUtils.getNum(document.getReference())); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnData.setFromStationNameUTF8(document.getFromStationName()); - asnData.setToStationNameUTF8(document.getToStationName()); - - asnData.setCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getIncludedCarriers()))); - asnData.setCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getIncludedCarriers())); - - asnData.setExcludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getExcludedServiceBrands(),1,32000))); - asnData.setIncludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getIncludedServiceBrands(),1,32000))); - - asnData.setExcludedTransportTypes(SequenceOfTransportTypes.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getExcludedTransportTypes(),0,31))); - asnData.setIncludedTransportTypes(SequenceOfTransportTypes.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getIncludedTransportTypes(),0,31))); - - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getValidFromUTCoffset() != null) { - asnData.setValidFromUTCOffset(document.getValidFromUTCoffset()); - if (document.getValidUntilUTCoffset() != null && document.getValidUntilUTCoffset() != document.getValidFromUTCoffset()){ - asnData.setValidUntilUTCOffset(document.getValidUntilUTCoffset()); - } - } - - - asnData.setTariffs(encodeTariffCollection(document.getTariffs())); - - if (document.getActivatedDays() != null && !document.getActivatedDays().isEmpty()) { - asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays())); - } - if (document.getClassCode() != ITravelClassType.second && document.getClassCode() != null){ - asnData.setClassCode(TravelClassType.valueOf(document.getClassCode().name())); - } - if (document.getExternalIssuer()>0) { - asnData.setExtIssuerId(new Long(document.getExternalIssuer())); - } - - if (document.getAuthorizationCode()>0) { - asnData.setIssuerAutorizationId(new Long (document.getAuthorizationCode())); - } - - if (document.getValidRegionList() != null && document.getValidRegionList().size() > 0) { - asnData.setValidRegion(encodeRegionCollection(document.getValidRegionList(), issuingDate)); - } - asnData.setValidRegionDesc(document.getValidRegionDesc()); - - if (document.getIncludedAddOns() != null && document.getIncludedAddOns().size() > 0) { - asnData.setIncludedAddOns(encodeIncludedAddons(document.getIncludedAddOns(),issuingDate, document.getClassCode())); - } - - if (document.getLuggageRestriction() != null) { - asnData.setLuggage(encodeLuggage(document.getLuggageRestriction())); - } - - if (document.isReturnIncluded()) { - asnData.setReturnIncluded(true); - asnData.setReturnDescription(encodeReturnDescription(document.getReturnDescription(),issuingDate)); - } else { - asnData.setReturnIncluded(false); - } - - asnData.setPrice(document.getPrice()); - - if (document.getVatDetails() != null && !document.getVatDetails().isEmpty()){ - for (IVatDetail vat : document.getVatDetails()) { - asnData.addVatDetail(encodeVatDetail(vat)); - } - } - - - return asnDocument; - } - - /** - * Convert counter mark. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertCounterMark(ICounterMark document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - CountermarkData asnData = new CountermarkData(); - asnDocument.getTicket().setCounterMark(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - - asnData.setTicketReferenceNum(UicEncoderUtils.getNum(document.getTicketReference())); - asnData.setTicketReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getTicketReference())); - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnData.setFromStationNameUTF8(document.getFromStationName()); - asnData.setToStationNameUTF8(document.getToStationName()); - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getValidFromUTCoffset() != null) { - asnData.setValidFromUTCOffset(document.getValidFromUTCoffset()); - if (document.getValidUntilUTCoffset() != null && document.getValidUntilUTCoffset() != document.getValidFromUTCoffset()){ - asnData.setValidUntilUTCOffset(document.getValidUntilUTCoffset()); - } - } - - - - asnData.setReferenceNum(UicEncoderUtils.getNum(document.getReference())); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnData.setFromStationNameUTF8(document.getFromStationName()); - asnData.setToStationNameUTF8(document.getToStationName()); - - asnData.setCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getIncludedCarriers()))); - asnData.setCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getIncludedCarriers())); - - asnData.setExcludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getExcludedServiceBrands(),1,32000))); - asnData.setIncludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getIncludedServiceBrands(),1,32000))); - - if (document.getValidRegionList() != null && document.getValidRegionList().size() > 0) { - asnData.setValidRegion(encodeRegionCollection(document.getValidRegionList(), issuingDate)); - } - asnData.setValidRegionDesc(document.getValidRegionDesc()); - - if (document.getClassCode() != ITravelClassType.second && document.getClassCode() != null){ - asnData.setClassCode(TravelClassType.valueOf(document.getClassCode().name())); - } - - - if (document.isReturnIncluded()) { - asnData.setReturnIncluded(true); - if (document.getReturnDescription()!= null) { - asnData.setReturnDescription(encodeReturnDescription(document.getReturnDescription(),issuingDate)); - } - } else { - asnData.setReturnIncluded(false); - } - - return asnDocument; - } - - - - /** - * Encode via station collection. - * - * @param stations the stations - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfViaStationType encodeViaStationCollection(Collection stations) throws EncodingFormatException { - if (stations== null || stations.isEmpty()) { - return null; - } - SequenceOfViaStationType asnList = new SequenceOfViaStationType(); - - for ( IViaStation station : stations) { - ViaStationType asnData = encodeViaStation(station); - if (asnData != null) { - asnList.add(asnData); - } - } - - if (asnList.isEmpty()) { - return null; - } - - return asnList; - } - - - /** - * Encode via station. - * - * @param document the data - * @return the via station type - * @throws EncodingFormatException the encoding format exception - */ - private ViaStationType encodeViaStation(IViaStation document) throws EncodingFormatException { - if (document == null) return null; - - ViaStationType asnData =new ViaStationType(); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setStationIA5(UicEncoderUtils.getIA5NonNum(document.getStation())); - asnData.setStationNum(UicEncoderUtils.getNum(document.getStation())); - - asnData.setAlternativeRoutes(encodeViaStationCollection(document.getAlternativeRoutes())); - - if (document.isBorder()) { - asnData.setBorder(true); - } else { - asnData.setBorder(false); - } - - asnData.setCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getCarriers()))); - asnData.setCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getCarriers())); - - asnData.setRoute(encodeViaStationCollection(document.getRoute())); - - if (document.getRouteId() > 0){ - asnData.setSeriesId(new Long(document.getRouteId())); - } - return asnData; - } - - /** - * Encode zone. - * - * @param document the data - * @return the zone type - * @throws EncodingFormatException the encoding format exception - */ - private ZoneType encodeZone(IZone document) throws EncodingFormatException { - if (document == null) return null; - - ZoneType asnData =new ZoneType(); - - if (document.getBinaryZoneId() != null && document.getBinaryZoneId().length > 0) { - asnData.setBinaryZoneId(document.getBinaryZoneId()); - } - asnData.setCarrierNum(UicEncoderUtils.getNum(document.getCarrier())); - asnData.setCarrierIA5(UicEncoderUtils.getIA5NonNum(document.getCarrier())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - asnData.setEntryStationIA5(UicEncoderUtils.getIA5NonNum(document.getEntryStation())); - asnData.setEntryStationNum(UicEncoderUtils.getNum(document.getEntryStation())); - - asnData.setTerminatingStationIA5(UicEncoderUtils.getIA5NonNum(document.getTerminatingStation())); - asnData.setTerminatingStationNum(UicEncoderUtils.getNum(document.getTerminatingStation())); - - asnData.setZoneId(SequenceOfUnrestrictedLong.getSequence(UicEncoderUtils.encodeIntegerCollection(document.getZoneIds()))); - - if (document.getCity() > 0) { - asnData.setCity(Asn1BigInteger.toAsn1(document.getCity())); - } - - if (document.getNUTScode() != null && document.getNUTScode().length() > 0) { - asnData.setNutsCode(document.getNUTScode()); - } - - return asnData; - } - - - - - - /** - * Encode train link. - * - * @param data the data - * @param issuingDate the issuing date - * @return the train link type - * @throws EncodingFormatException the encoding format exception - */ - private TrainLinkType encodeTrainLink(ITrainLink data, Date issuingDate) throws EncodingFormatException { - if (data == null) return null; - - TrainLinkType asnData =new TrainLinkType(); - - asnData.setFromStationIA5(UicEncoderUtils.getIA5NonNum(data.getFromStation())); - asnData.setFromStationNum(UicEncoderUtils.getNum(data.getFromStation())); - - asnData.setToStationIA5(UicEncoderUtils.getIA5NonNum(data.getToStation())); - asnData.setToStationNum(UicEncoderUtils.getNum(data.getToStation())); - - asnData.setFromStationName(data.getFromStationName()); - asnData.setToStationName(data.getToStationName()); - - asnData.setTrainIA5(UicEncoderUtils.getIA5NonNum(data.getTrain())); - asnData.setTrainNum(UicEncoderUtils.getNum(data.getTrain())); - - asnData.setDepartureDate(data.getDepartureDateTime(), issuingDate); - - return asnData; - } - - /** - * Encode polygone. - * - * @param data the data - * @return the polygone type - * @throws EncodingFormatException the encoding format exception - */ - private PolygoneType encodePolygone(IPolygone data) throws EncodingFormatException { - if (data == null) return null; - if (data.getEdges() == null || data.getEdges().isEmpty()) { - return null; - } - - PolygoneType asnData = new PolygoneType(); - SequenceOfDeltaCoordinates asnList = new SequenceOfDeltaCoordinates(); - - boolean firstEdge = true; - - for ( IGeoCoordinate edge : data.getEdges()) { - - if (firstEdge) { - asnData.setFirstEdge(encodeGeoCoordinate(edge)); - firstEdge = false; - } else { - DeltaCoordinates delta = new DeltaCoordinates(); - delta.setLatitude(Asn1BigInteger.toAsn1(asnData.getFirstEdge().getLatitude() - edge.getLatitude())); - delta.setLatitude(Asn1BigInteger.toAsn1(asnData.getFirstEdge().getLongitude() - edge.getLongitude())); - } - - } - if (!asnList.isEmpty()) { - asnData.setEdges(asnList); - } - return asnData; - } - - /** - * Encode line. - * - * @param document the data - * @return the line type - * @throws EncodingFormatException the encoding format exception - */ - private LineType encodeLine(ILine document) throws EncodingFormatException { - if (document == null) return null; - LineType asnData =new LineType(); - - asnData.setBinaryZoneId(document.getBinaryZoneId()); - asnData.setCarrierNum(UicEncoderUtils.getNum(document.getCarrier())); - asnData.setCarrierIA5(UicEncoderUtils.getIA5NonNum(document.getCarrier())); - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - asnData.setEntryStationIA5(UicEncoderUtils.getIA5NonNum(document.getEntryStation())); - asnData.setEntryStationNum(UicEncoderUtils.getNum(document.getEntryStation())); - - asnData.setTerminatingStationIA5(UicEncoderUtils.getIA5NonNum(document.getTerminatingStation())); - asnData.setTerminatingStationNum(UicEncoderUtils.getNum(document.getTerminatingStation())); - - if (document.getCity() > 0) { - asnData.setCity(new Long(document.getCity())); - } - - asnData.setLineId(SequenceOfUnrestrictedLong.getSequence(UicEncoderUtils.encodeIntegerCollection(document.getLineIds()))); - - return asnData; - } - - - - /** - * Encode region collection. - * - * @param regionList the region list - * @param issuingDate the issuing date - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfRegionalValidityType encodeRegionCollection(Collection regionList, Date issuingDate) throws EncodingFormatException { - - if (regionList == null || regionList.isEmpty()) { - return null; - } - - SequenceOfRegionalValidityType asnList = new SequenceOfRegionalValidityType(); - - for ( IRegionalValidity region :regionList) { - - RegionalValidityType asnRegion = new RegionalValidityType(); - - if (region instanceof ILine ) { - LineType line = encodeLine((ILine)region); - if (line == null){ - break; - } - asnRegion.setLines(line); - asnList.add(asnRegion); - } else if (region instanceof IPolygone ) { - PolygoneType line = encodePolygone((IPolygone)region); - if (line == null){ - break; - } - asnRegion.setPolygone(line); - asnList.add(asnRegion); - } else if (region instanceof ITrainLink ) { - TrainLinkType trainLink = encodeTrainLink((ITrainLink)region, issuingDate); - if (trainLink == null){ - break; - } - asnRegion.setTrainLink(trainLink); - asnList.add(asnRegion); - } else if (region instanceof IViaStation ) { - ViaStationType viaStation = encodeViaStation((IViaStation)region); - if (viaStation == null){ - break; - } - asnRegion.setViaStations(viaStation); - asnList.add(asnRegion); - } else if (region instanceof IZone ) { - ZoneType zone = encodeZone((IZone)region); - if (zone == null){ - break; - } - asnRegion.setZones(zone); - asnList.add(asnRegion); - } - - } - - if (asnList.isEmpty()) { - return null; - } - - return asnList; - } - - /** - * Convert parking ground. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertParkingGround(IParkingGround document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - ParkingGroundData asnData = new ParkingGroundData(); - asnDocument.getTicket().setParkingGround(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setReferenceNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getReference()))); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setExtension(encodeExtension(document.getExtension())); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnData.setStationIA5(UicEncoderUtils.getIA5NonNum(document.getStation())); - asnData.setStationNum(UicEncoderUtils.getNum(document.getStation())); - - asnData.setAccessCode(UicEncoderUtils.getIA5(document.getAccessCode())); - asnData.setEntryTrack(document.getEntryTrack()); - - if (document.getFromParkingDate() != null){ - asnData.setParkingDates(document.getFromParkingDate(),document.getToParkingDate(),issuingDate); - } - - asnData.setLocation(document.getLocation()); - asnData.setNumberPlate(UicEncoderUtils.getIA5(document.getNumberPlate())); - asnData.setParkingGroundId(UicEncoderUtils.getIA5(document.getParkingGroundId())); - asnData.setSpecialInformation(document.getSpecialInformation()); - - asnData.setPrice(document.getPrice()); - - if (document.getVatDetails() != null && !document.getVatDetails().isEmpty()){ - for (IVatDetail vat : document.getVatDetails()) { - asnData.addVatDetail(encodeVatDetail(vat)); - } - } - - return asnDocument; - } - - - /** - * Encode route section. - * - * @param document the route - * @return the route section type - * @throws EncodingFormatException the encoding format exception - */ - private RouteSectionType encodeRouteSection(IRouteSection document) throws EncodingFormatException { - - if (document == null) return null; - - RouteSectionType asnRoute = new RouteSectionType(); - - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnRoute.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - asnRoute.setFromStationIA5(UicEncoderUtils.getIA5NonNum(document.getFromStation())); - asnRoute.setFromStationNum(UicEncoderUtils.getNum(document.getFromStation())); - - asnRoute.setToStationIA5(UicEncoderUtils.getIA5NonNum(document.getToStation())); - asnRoute.setToStationNum(UicEncoderUtils.getNum(document.getToStation())); - - asnRoute.setFromStationNameUTF8(document.getFromStationName()); - asnRoute.setToStationNameUTF8(document.getToStationName()); - - - return asnRoute; - } - - /** - * Encode tariff collection. - * - * @param tariffs the tariffs - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfTariffType encodeTariffCollection(Collection tariffs) throws EncodingFormatException { - - if (tariffs== null || tariffs.isEmpty()) { - return null; - } - - SequenceOfTariffType tariffList = new SequenceOfTariffType(); - - for (ITariff tariff :tariffs){ - - TariffType asnTariff = encodeTariff(tariff); - - if (asnTariff != null) { - tariffList.add(asnTariff); - } - } - - if (tariffList.isEmpty()) { - return null; - } - - return tariffList; - } - - /** - * Encode tariff. - * - * @param tariff the tariff - * @return the tariff type - * @throws EncodingFormatException the encoding format exception - */ - private TariffType encodeTariff(ITariff tariff) throws EncodingFormatException { - - if (tariff == null ) { - return null; - } - - TariffType asnTariff = new TariffType(); - - asnTariff.setAgeAbove(UicEncoderUtils.getRestrictedInt(tariff.getAgeAbove(),2,120)); - asnTariff.setAgeBelow(UicEncoderUtils.getRestrictedInt(tariff.getAgeBelow(),1,40)); - - asnTariff.setNumberOfPassengers(UicEncoderUtils.getRestrictedIntWithDefault(tariff.getNumberOfPassengers(),1,200,1)); - - - try { - if (tariff.getPassengerType() != null) { - asnTariff.setPassengerType(PassengerType.valueOf(tariff.getPassengerType().name())); - } - } catch (Exception e){ - //no value found - } - - - asnTariff.setReductionCard(encodeCardReferences(tariff.getReductionCards())); - asnTariff.setRestrictedToCountryOfResidence(tariff.isRestrictedToCountryOfResidence()); - asnTariff.setRestrictedToRouteSection(encodeRouteSection(tariff.getRestrictedToRouteSection())); - - if (tariff.getSeriesDataDetails()!= null) { - asnTariff.setSeriesDataDetails(encodeSeriesDataDetails(tariff.getSeriesDataDetails())); - } - - - asnTariff.setTariffDesc(tariff.getTariffDescription()); - asnTariff.setTariffIdIA5(UicEncoderUtils.getIA5NonNum(tariff.getTariffId())); - asnTariff.setTariffIdNum(UicEncoderUtils.getNum(tariff.getTariffId())); - - asnTariff.setTraverlerid(SequenceOfTravelerId.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(tariff.getTravelerIds(), 1, 254))); - - return asnTariff; - } - - private SeriesDetailType encodeSeriesDataDetails( ISeriesDataDetails seriesDataDetails) throws EncodingFormatException { - SeriesDetailType details = new SeriesDetailType(); - details.setSeries(UicEncoderUtils.getRestrictedInt(seriesDataDetails.getSeries(), 1, 99999)); - details.setSupplyingCarrier(UicEncoderUtils.getRestrictedInt(seriesDataDetails.getSupplyingCarrier(), 1, 9999)); - details.setOfferIdentification(UicEncoderUtils.getRestrictedInt(seriesDataDetails.getOfferIdentification(), 1, 99)); - return null; - } - - /** - * Convert voucher. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertVoucher(IVoucher document, Date issuingDate) throws EncodingFormatException { - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - - VoucherData asnData = new VoucherData(); - asnDocument.getTicket().setVoucher(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - asnData.setReferenceNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getReference()))); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setInfoText(document.getInfoText()); - - asnData.setValidity(document.getValidFrom(), document.getValidUntil()); - - asnData.setType(UicEncoderUtils.getRestrictedInt(document.getType(), 1,9999)); - - asnData.setValue(UicEncoderUtils.getRestrictedInt(document.getAmount(),1,9999999)); - - return asnDocument; - } - - /** - * Convert pass. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertPass(IPass document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - PassData asnData = new PassData(); - asnDocument.getTicket().setPass(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - asnData.setReferenceNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getReference()))); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setInfoText(document.getInfoText()); - asnData.setExtension(encodeExtension(document.getExtension())); - - asnData.setIncludedCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getIncludedCarriers()))); - asnData.setIncludedCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getIncludedCarriers())); - - asnData.setExcludedCarriersNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getExcludedCarriers()))); - asnData.setExcludedCarriersIA5(UicEncoderUtils.getIA5NonNumList(document.getExcludedCarriers())); - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getValidFromUTCoffset() != null) { - asnData.setValidFromUTCOffset(document.getValidFromUTCoffset()); - if (document.getValidUntilUTCoffset() != null && document.getValidUntilUTCoffset() != document.getValidFromUTCoffset()){ - asnData.setValidUntilUTCOffset(document.getValidUntilUTCoffset()); - } - } - - if (document.getActivatedDays() != null && !document.getActivatedDays().isEmpty()) { - asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays())); - } - if (document.getClassCode() != null) { - asnData.setClassCode(TravelClassType.valueOf(document.getClassCode().name())); - } - if (document.getCountries() != null && document.getCountries().size() > 0){ - asnData.setCountries(SequenceOfCountries.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getCountries(),1,250))); - } - - asnData.setExcludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getExcludedServiceBrands(),1,32000))); - asnData.setIncludedServiceBrands(SequenceOfServiceBrands.getSequence(UicEncoderUtils.encodeRestrictedIntegerCollection(document.getIncludedServiceBrands(),1,32000))); - - asnData.setNumberOfDaysOfTravel(UicEncoderUtils.getRestrictedInt(document.getNumberOfDaysOfTravel(), 1, 93)); - asnData.setNumberOfPossibleTrips(UicEncoderUtils.getRestrictedInt(document.getNumberOfPossibleTrips(), 1, 30)); - asnData.setNumberOfValidityDays(UicEncoderUtils.getRestrictedInt(document.getNumberOfValidityDays(), 1, 370)); - asnData.setPassDescription(document.getPassDescription()); - if (document.getPassType() > 0 ){ - asnData.setPassType(new Long(document.getPassType())); - } - - asnData.setTariffs(encodeTariffCollection(document.getTariffs())); - - - - if(document.getValidRegionList()!= null && document.getValidRegionList().size() > 0) { - asnData.setValidRegion(encodeRegionCollection(document.getValidRegionList(), issuingDate)); - } - - if (document.getValidityDetails() != null) { - asnData.setValidityPeriodDetails(encodeValidityDetails(document.getValidityDetails(), issuingDate)); - } - - - - asnData.setPrice(document.getPrice()); - - if (document.getVatDetails() != null && !document.getVatDetails().isEmpty()){ - for (IVatDetail vat : document.getVatDetails()) { - asnData.addVatDetail(encodeVatDetail(vat)); - } - } - - - return asnDocument; - } - - - private ValidityPeriodDetailType encodeValidityDetails( IValidityDetails validityDetails, Date referenceDate) throws EncodingFormatException { - - if ( (validityDetails.getTimeRanges() == null || validityDetails.getTimeRanges().isEmpty()) - || - (validityDetails.getValidityRanges() == null || validityDetails.getValidityRanges().isEmpty()) ) { - return null; - } - - - ValidityPeriodDetailType asnData = new ValidityPeriodDetailType(); - - if (validityDetails.getTimeRanges() != null) { - for (ITimeRange range : validityDetails.getTimeRanges()) { - - if (range.getFromTime() == range.getUntilTime()){ - break; - } - - TimeRangeType asnRange = new TimeRangeType(); - asnRange.setFromTime(new Long(range.getFromTime())); - asnRange.setUntilTime(new Long(range.getUntilTime())); - - asnData.getExcludedTimeRange().add(asnRange); - } - } - - if (validityDetails.getValidityRanges() != null) { - for (IValidityRange range : validityDetails.getValidityRanges()) { - - ValidityPeriodType asnRange = new ValidityPeriodType(); - - asnRange.setValidityDates(range.getFromDate(), range.getUntilDate(), referenceDate); - - if (range.getValidFromUTCoffset() != null) { - asnRange.setValidFromUTCOffset(range.getValidFromUTCoffset()); - if (range.getValidUntilUTCoffset() != null && range.getValidUntilUTCoffset() != range.getValidFromUTCoffset()){ - asnRange.setValidUntilUTCOffset(range.getValidUntilUTCoffset()); - } - } - - - asnData.getValidityPeriod().add(asnRange); - } - } - - return asnData; - } - - /** - * Convert fip ticket. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertFipTicket(IFipTicket document, Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - - FIPTicketData asnData = new FIPTicketData(); - asnDocument.getTicket().setFipTicket(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - asnData.setReferenceNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getReference()))); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - asnData.setCarrierNum(SequenceOfCarrierNum.getSequence(UicEncoderUtils.getNumList(document.getCarriers()))); - asnData.setCarrierIA5(UicEncoderUtils.getIA5NonNumList(document.getCarriers())); - - if (document.getClassCode() != null) { - asnData.setClassCode(TravelClassType.valueOf(document.getClassCode().name())); - } - if (!document.isIncludesSupplements()){ - asnData.setIncludesSupplements(false); - } - asnData.setNumberOfTravelDays(UicEncoderUtils.getRestrictedInt(document.getNumberOfTravelDates(), 1, 8)); - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getActivatedDays() != null && !document.getActivatedDays().isEmpty()) { - asnData.addActivatedDays(DateTimeUtils.getActivatedDays(document.getValidFrom(), document.getActivatedDays())); - } - asnData.setExtension(encodeExtension(document.getExtension())); - - return asnDocument; - } - - /** - * Convert station passage. - * - * @param document the document - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData convertStationPassage(IStationPassage document,Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - StationPassageData asnData = new StationPassageData(); - asnDocument.getTicket().setStationPassage(asnData); - - asnData.setProductOwnerNum(UicEncoderUtils.getNum(document.getProductOwner())); - asnData.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(document.getProductOwner())); - - asnData.setProductIdNum(UicEncoderUtils.getNum(document.getProductId())); - asnData.setProductIdIA5(UicEncoderUtils.getIA5NonNum(document.getProductId())); - - asnData.setReferenceNum(Asn1BigInteger.toAsn1(UicEncoderUtils.getNum(document.getReference()))); - asnData.setReferenceIA5(UicEncoderUtils.getIA5NonNum(document.getReference())); - - if (document.getNumberOfdaysAllowed() > 0) { - asnData.setNumberOfDaysValid(new Long(document.getNumberOfdaysAllowed())); - } - - asnData.setProductName(document.getProductName()); - - if (document.getStationCodeTable() != IStationCodeTable.stationUIC && document.getStationCodeTable() != null){ - asnData.setStationCodeTable(CodeTableType.valueOf(document.getStationCodeTable().name())); - } - - - if (document.getStations()!= null && !document.getStations().isEmpty()){ - SequenceOfStringIA5 stationsIA5 = new SequenceOfStringIA5(); - SequenceOfUnrestrictedLong stationsNum = new SequenceOfUnrestrictedLong(); - - for (String station : document.getStations()) { - String ia5 = UicEncoderUtils.getIA5NonNum(station); - Long num = UicEncoderUtils.getNum(station); - if (ia5 != null && ia5.length() > 0) { - stationsIA5.add(ia5); - } - if (num != null && num > 0){ - stationsNum.add(num); - } - } - if (!stationsIA5.isEmpty()){ - asnData.setStationIA5(stationsIA5); - } - if (!stationsNum.isEmpty()){ - asnData.setStationNum(stationsNum); - } - } - - if (document.getStationNames()!= null && !document.getStationNames().isEmpty()) { - - SequenceOfStringUTF8 asnList = new SequenceOfStringUTF8(); - for ( String text :document.getStationNames()){ - if (text.length() > 0) { - asnList.add(text); - } - } - - if (!asnList.isEmpty()) { - asnData.setStationNameUTF8(asnList); - } - - } - - asnData.setValidityDates(document.getValidFrom(), document.getValidUntil(), issuingDate); - - if (document.getValidFromUTCoffset() != null) { - asnData.setValidFromUTCOffset(document.getValidFromUTCoffset()); - if (document.getValidUntilUTCoffset() != null && document.getValidUntilUTCoffset() != document.getValidFromUTCoffset()){ - asnData.setValidUntilUTCOffset(document.getValidUntilUTCoffset()); - } - } - - - asnData.setExtension(encodeExtension(document.getExtension())); - - asnData.setAreaCodeNum(SequenceOfUnrestrictedLong.getSequence(UicEncoderUtils.getNumList(document.getAreaCodes()))); - asnData.setAreaCodeIA5(UicEncoderUtils.getIA5NonNumList(document.getAreaCodes())); - - asnData.setAreaNameUTF8(UicEncoderUtils.encodeStringCollection(document.getAreaNames())); - - return asnDocument; - } - - - /** - * Encode control details. - * - * @param data the data - * @param issuingDate the issuing date - * @return the control data - * @throws EncodingFormatException the encoding format exception - */ - private ControlData encodeControlDetails(IControlDetail data, Date issuingDate) throws EncodingFormatException { - - if (data == null) return null; - - ControlData asnData = new ControlData(); - - asnData.setExtension(encodeExtension(data.getExtension())); - - if (data.isAgeCheckRequired()) { - asnData.setAgeCheckRequired(true); - } else { - asnData.setAgeCheckRequired(false); - } - - if (data.isIdentificationByIdCard()){ - asnData.setIdentificationByIdCard(true); - } else { - asnData.setIdentificationByIdCard(false); - } - - if (data.isIdentificationByPassportId()){ - asnData.setIdentificationByPassportId(true); - } else { - asnData.setIdentificationByPassportId(false); - } - - if (data.isOnlineValidationRequired()){ - asnData.setOnlineValidationRequired(true); - } else { - asnData.setOnlineValidationRequired(false); - } - - if (data.isPassportValidationRequired()){ - asnData.setPassportValidationRequired(true); - } else { - asnData.setPassportValidationRequired(false); - } - - if (data.isReductionCardCheckRequired()){ - asnData.setReductionCardCheckRequired(true); - } else { - asnData.setReductionCardCheckRequired(false); - } - - asnData.setInfoText(data.getInfoText()); - - asnData.setRandomDetailedValidationRequired(UicEncoderUtils.getRestrictedInt(data.getRandomDetailedValidationRequired(), 0,99)); - - asnData.setIdentificationItem(UicEncoderUtils.getUnRestrictedInt(data.getIdentificationItem())); - - asnData.setIncludedTickets(encodeTicketLickList(data.getLinkedTickets())); - - asnData.setIdentificationByCardReference(encodeCardReferences(data.getIdentificationByCardReference())); - - return asnData; - } - - - - /** - * Encode card references. - * - * @param cardReferences the card references - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfCardReferenceType encodeCardReferences(Collection cardReferences) throws EncodingFormatException { - - if (cardReferences == null || cardReferences.isEmpty()) return null; - - SequenceOfCardReferenceType asnList = new SequenceOfCardReferenceType(); - - for (ICardReference card : cardReferences){ - - CardReferenceType asnCard = new CardReferenceType(); - - if (card.getCardId() != null && card.getCardId().length() > 0){ - //only longs allowed - try { - long num = Long.parseLong(card.getCardId()); - asnCard.setCardIdNum(num); - } catch (Exception e ){ - asnCard.setCardIdIA5(card.getCardId()); - } - } - - - asnCard.setCardIssuerNum(UicEncoderUtils.getNum(card.getCardIssuer())); - asnCard.setCardIssuerIA5(UicEncoderUtils.getIA5NonNum(card.getCardIssuer())); - asnCard.setCardName(card.getCardName()); - asnCard.setCardType(UicEncoderUtils.getUnRestrictedInt(card.getCardType())); - - asnCard.setLeadingCardIdNum(UicEncoderUtils.getNum(card.getLeadingCardId())); - asnCard.setLeadingCardIdIA5(UicEncoderUtils.getIA5NonNum(card.getLeadingCardId())); - - asnCard.setTrailingCardIdNum(UicEncoderUtils.getNum(card.getTrailingCardId())); - asnCard.setTrailingCardIdIA5(UicEncoderUtils.getIA5NonNum(card.getTrailingCardId())); - - asnList.add(asnCard); - - } - - - if (asnList.isEmpty()) return null; - - return asnList; - } - - /** - * Encode ticket lick list. - * - * @param linkedTickets the linked tickets - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - private SequenceOfTicketLinkType encodeTicketLickList(Collection linkedTickets) throws EncodingFormatException { - - if (linkedTickets == null || linkedTickets.isEmpty()) return null; - - SequenceOfTicketLinkType asnList = new SequenceOfTicketLinkType(); - - for (ITicketLink ticket : linkedTickets){ - - TicketLinkType asnTicket = new TicketLinkType(); - - asnTicket.setIssuerName(ticket.getIssuer()); - - asnTicket.setIssuerPNR(ticket.getIssuerPNR()); - - asnTicket.setProductOwnerNum(UicEncoderUtils.getNum(ticket.getProductOwner())); - asnTicket.setProductOwnerIA5(UicEncoderUtils.getIA5NonNum(ticket.getProductOwner())); - - asnTicket.setReferenceNum(UicEncoderUtils.getNum(ticket.getReference())); - asnTicket.setReferenceIA5(UicEncoderUtils.getIA5NonNum(ticket.getReference())); - - if (ticket.getTicketType() != ITicketType.openTicket && ticket.getTicketType() != null){ - asnTicket.setTicketType(TicketType.valueOf(ticket.getTicketType().name())); - } - - if (ticket.getLinkMode() != ILinkMode.issuedTogether && ticket.getLinkMode() != null){ - asnTicket.setLinkMode(LinkMode.valueOf(ticket.getLinkMode().name())); - } - - asnList.add(asnTicket); - } - - if (asnList.isEmpty()) return null; - - return asnList; - } - - /** - * Encode travelers. - * - * @param data the data - * @param issuingDate the issuing date - * @return the traveler data - * @throws EncodingFormatException the encoding format exception - */ - private TravelerData encodeTravelers(ITravelerDetail data,Date issuingDate) throws EncodingFormatException { - - if (data == null) return null; - - TravelerData asnData = new TravelerData(); - - asnData.setGroupName(data.getGroupName()); - - asnData.setPreferedLanguage(data.getPreferredLanguage()); - - if (data.getTravelers()!=null && !data.getTravelers().isEmpty()) { - - SequenceOfTravelerType asnTravelers = new SequenceOfTravelerType(); - - for (ITraveler traveler : data.getTravelers()){ - - TravelerType asnTraveler = encodeTraveler(traveler); - - if (asnTraveler !=null){ - asnTravelers.add(asnTraveler); - } - } - - if (!asnTravelers.isEmpty()) { - asnData.setTraveler(asnTravelers); - } - - } - - return asnData; - } - - /** - * Encode issuing details. - * - * @param data the data - * @return the issuing data - * @throws EncodingFormatException the encoding format exception - */ - private IssuingData encodeIssuingDetails(IIssuingDetail data) throws EncodingFormatException { - - if (data == null){ - throw new EncodingFormatException("Issuind data missing"); - } - - IssuingData asnData = new IssuingData(); - - if (!data.isActivated()){ - asnData.setActivated(false); - } else { - asnData.setActivated(true); - } - - if (!data.isSecurePaperTicket()) { - asnData.setSecurePaperTicket(false); - } else { - asnData.setSecurePaperTicket(true); - } - - asnData.setExtension(encodeExtension(data.getExtension())); - - - asnData.setIssuedOnLine(UicEncoderUtils.getRestrictedInt(data.getIssuedOnLine(), 1, 99999)); - - asnData.setIssuedOnTrainNum(UicEncoderUtils.getNum(data.getIssuedOnTrain())); - asnData.setIssuedOnTrainIA5(UicEncoderUtils.getIA5NonNum(data.getIssuedOnTrain())); - - - asnData.setSecurityProviderNum(UicEncoderUtils.getNum(data.getSecurityProvider())); - - - if (data.getIssuer()!= null && !data.getIssuer().equals(data.getSecurityProvider()) ){ - asnData.setIssuerNum(UicEncoderUtils.getNum(data.getIssuer())); - asnData.setIssuerIA5(UicEncoderUtils.getIA5NonNum(data.getIssuer())); - } - - asnData.setIssuerName(data.getIssuerName()); - asnData.setIssuerPNR(UicEncoderUtils.getIA5(data.getIssuerPNR())); - - - asnData.setIssuingDate(data.getIssuingDate()); - - if (data.isSpecimen()){ - asnData.setSpecimen(true); - } else { - asnData.setSpecimen(false); - } - - if (data.getPointOfSale()!= null){ - asnData.setPointOfSale(encodeGeoCoordinate(data.getPointOfSale())); - } - - return asnData; - } - - /** - * Encode geo coordinate. - * - * @param point the point - * @return the geo coordinate type - */ - private GeoCoordinateType encodeGeoCoordinate(IGeoCoordinate point) { - - if (point == null) return null; - - GeoCoordinateType asnPoint = new GeoCoordinateType(); - - asnPoint.setLatitude(point.getLatitude()); - asnPoint.setLongitude(point.getLongitude()); - - if (point.getUnit() != IGeoUnitType.milliDegree && point.getUnit() != null){ - asnPoint.setGeoUnit(GeoUnitType.valueOf(point.getUnit().name())); - } - - if (point.getAccuracy() != null) { - asnPoint.setAccuracy(GeoUnitType.valueOf(point.getAccuracy().name())); - } - - if (point.getHemisphereLatitude() != IHemisphereLatitudeType.east && point.getHemisphereLatitude() != null) { - asnPoint.setHemisphereLatitude(HemisphereLatitudeType.valueOf(point.getHemisphereLatitude().name())); - } - - if (point.getHemisphereLongitude() != IHemisphereLongitudeType.north && point.getHemisphereLongitude() != null) { - asnPoint.setHemisphereLongitude(HemisphereLongitudeType.valueOf(point.getHemisphereLongitude().name())); - } - - if (point.getSystem() != IGeoCoordinateSystemType.wgs84 && point.getSystem() != null){ - asnPoint.setCoordinateSystem(GeoCoordinateSystemType.valueOf(point.getSystem().name())); - } - - - return asnPoint; - } - - /** - * Encode customer card. - * - * @param document the customer card - * @param issuingDate the issuing date - * @return the document data - * @throws EncodingFormatException the encoding format exception - */ - private DocumentData encodeCustomerCard(ICustomerCard document,Date issuingDate) throws EncodingFormatException { - - DocumentData asnDocument = new DocumentData(); - TicketDetailData asnTicket = new TicketDetailData(); - asnDocument.setTicket(asnTicket); - - CustomerCardData asnCustomerCard = new CustomerCardData(); - asnDocument.getTicket().setCustomerCard(asnCustomerCard); - - - if (document.getCardId() != null && document.getCardId().length() > 0){ - //only longs allowed - try { - long num = Long.parseLong(document.getCardId()); - asnCustomerCard.setCardIdNum(num); - } catch (Exception e ){ - asnCustomerCard.setCardIdIA5(document.getCardId()); - } - } - - - asnCustomerCard.setCardType(UicEncoderUtils.getRestrictedInt(document.getCardType(),1,1000)); - - asnCustomerCard.setCardTypeDescr(document.getCardTypeDescr()); - - if (document.getClassCode() != null) { - asnCustomerCard.setClassCode(TravelClassType.valueOf(document.getClassCode().name())); - } - - if (document.getCustomer()!=null){ - asnCustomerCard.setCustomer(encodeTraveler(document.getCustomer())); - } - - asnCustomerCard.setCustomerStatus(UicEncoderUtils.getUnRestrictedInt(document.getCustomerStatus())); - - asnCustomerCard.setCustomerStatusDescr(document.getCustomerStatusDescr()); - - asnCustomerCard.setExtension(encodeExtension(document.getExtension())); - - asnCustomerCard.setIncludedServices(SequenceOfUnrestrictedLong.getSequence(UicEncoderUtils.getUnRestrictedIntList(document.getIncludedServices()))); - - asnCustomerCard.setValidity(document.getValidFrom(), document.getValidUntil()); - - return asnDocument; - } - - private TokenType encodeToken(IToken token) throws EncodingFormatException { - TokenType asnToken = new TokenType(); - asnToken.setToken(token.getToken()); - asnToken.setTokenProviderNum(UicEncoderUtils.getNum(token.getTokenProvider())); - asnToken.setTokenProviderIA5(UicEncoderUtils.getIA5NonNum(token.getTokenProvider())); - asnToken.setTokenSpecification(token.getTokenSpecification()); - return asnToken; - } - - - - - private VatDetailType encodeVatDetail(IVatDetail vatDetail) { - - if (vatDetail == null) return null; - - VatDetailType asnVatDetail = new VatDetailType(); - - asnVatDetail.setAmount(vatDetail.getAmount()); - asnVatDetail.setCountry(new Long(vatDetail.getCountry())); - asnVatDetail.setPercentage(new Long(vatDetail.getPercentage())); - asnVatDetail.setVatId(vatDetail.getVatId()); - - return asnVatDetail; - - } - - /** - * Encode traveler. - * - * @param traveler the traveler - * @return the traveler type - * @throws EncodingFormatException the encoding format exception - */ - private TravelerType encodeTraveler(ITraveler traveler) throws EncodingFormatException { - - if (traveler == null) return null; - - TravelerType asnTraveler = new TravelerType(); - - asnTraveler.setCountryOfResidence(UicEncoderUtils.getRestrictedInt(traveler.getCountryOfResidence(), 1, 999)); - asnTraveler.setCountryOfPassport(UicEncoderUtils.getRestrictedInt(traveler.getPassportCountry(), 1, 999)); - asnTraveler.setCountryOfIdCard(UicEncoderUtils.getRestrictedInt(traveler.getIDCardCountry(), 1, 999)); - - - asnTraveler.setCustomerIdNum(UicEncoderUtils.getNum(traveler.getCustomerId())); - asnTraveler.setCustomerIdIA5(UicEncoderUtils.getIA5NonNum(traveler.getCustomerId())); - - asnTraveler.setDateOfBirth(traveler.getDateOfBirth()); - - asnTraveler.setFirstName(traveler.getFirstName()); - asnTraveler.setSecondName(traveler.getSecondName()); - asnTraveler.setLastName(traveler.getLastName()); - if (traveler.getGender() != null) { - asnTraveler.setGender(GenderType.valueOf(traveler.getGender().toString())); - } - asnTraveler.setIdCard(UicEncoderUtils.getIA5(traveler.getIdCard())); - asnTraveler.setPassportId(UicEncoderUtils.getIA5(traveler.getPassportId())); - asnTraveler.setTitle(UicEncoderUtils.getIA5(traveler.getTitle())); - - if (traveler.getPassengerType() != null) { - asnTraveler.setPassengerType(PassengerType.valueOf(traveler.getPassengerType().name())); - } - - asnTraveler.setPassengerWithReducedMobility(traveler.isPassengerWithReducedMobility()); - if (traveler.isTicketHolder()){ - asnTraveler.setTicketHolder(true); - } else { - asnTraveler.setTicketHolder(false); - } - - if (traveler.getStatusCollection()!= null && !traveler.getStatusCollection().isEmpty()){ - - SequenceOfCustomerStatusType asnList = new SequenceOfCustomerStatusType(); - - for (ICustomerStatusDescription status : traveler.getStatusCollection() ) { - asnList.add(mapCustomerStatusType(status)); - } - if (!asnList.isEmpty()) { - asnTraveler.setStatus(asnList); - } - } - - - return asnTraveler; - } - - /** - * Map customer status type. - * - * @param status the status - * @return the customer status type - * @throws EncodingFormatException the encoding format exception - */ - private CustomerStatusType mapCustomerStatusType(ICustomerStatusDescription status) throws EncodingFormatException { - - CustomerStatusType asnStatus = new CustomerStatusType(); - - if (status.getStatus() > 0) { - asnStatus.setCustomerStatus(new Long(status.getStatus())); - } - asnStatus.setCustomerStatusDescr(status.getDescription()); - asnStatus.setStatusProviderIA5(UicEncoderUtils.getIA5NonNum(status.getStatusProvider())); - asnStatus.setStatusProviderNum(UicEncoderUtils.getNum(status.getStatusProvider())); - - return asnStatus; - } - - /** - * Encode extension. - * - * @param extension the extension - * @return the extension data - * @throws EncodingFormatException the encoding format exception - */ - private ExtensionData encodeExtension(IExtension extension) throws EncodingFormatException { - - if (extension==null) return null; - - if (extension.getBinarydata() == null || extension.getBinarydata().length == 0) { - throw new EncodingFormatException("Extension does not include data"); - } - - if (extension.getId() == null || extension.getId().length() == 0) { - throw new EncodingFormatException("Extension does not include id"); - } - - ExtensionData asnExtension = new ExtensionData(); - - asnExtension.setExtensionData(extension.getBinarydata()); - asnExtension.setExtensionId(UicEncoderUtils.getIA5(extension.getId())); - - return asnExtension; - } - - -} diff --git a/src/org/uic/barcode/ticket/api/utils/DateTimeUtils.java b/src/org/uic/barcode/ticket/api/utils/DateTimeUtils.java deleted file mode 100644 index c8664a5..0000000 --- a/src/org/uic/barcode/ticket/api/utils/DateTimeUtils.java +++ /dev/null @@ -1,239 +0,0 @@ -package org.uic.barcode.ticket.api.utils; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -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 startCal = Calendar.getInstance(); - startCal.clear(); - startCal.setTime(issuingDate); - startCal.setTimeZone(TimeZone.getTimeZone("UTC")); - startCal.set(Calendar.HOUR_OF_DAY, 0); - startCal.set(Calendar.MINUTE, 0); - startCal.set(Calendar.SECOND, 0); - startCal.set(Calendar.MILLISECOND, 0); - Date start = startCal.getTime(); - - Calendar endCal = Calendar.getInstance(); - endCal.clear(); - endCal.setTime(localDate); - endCal.setTimeZone(TimeZone.getTimeZone("UTC")); - endCal.set(Calendar.HOUR_OF_DAY, 0); - endCal.set(Calendar.MINUTE, 0); - endCal.set(Calendar.SECOND, 0); - endCal.set(Calendar.MILLISECOND, 0); - Date end = endCal.getTime(); - - long diff = TimeUnit.DAYS.convert(end.getTime() - start.getTime(), TimeUnit.MILLISECONDS ); - //long diff = localDate.getTime() - issuingDate.getTime(); - //long dayDiff = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS); - - return new Long(diff); - - } - - public static Long getDateDifferenceLocal(Date referenceDate, Date localDate) { - - if (referenceDate == null || localDate == null) return null; - - Calendar issuingCal = Calendar.getInstance(); - issuingCal.clear(); - issuingCal.setTime(referenceDate); - 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.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() - referenceDate.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); - return new Long (time ); - } - - public static Long getTime (Date date) { - - Calendar cal = Calendar.getInstance(); - cal.clear(); - cal.setTime(date); - - int time = cal.get(Calendar.HOUR_OF_DAY) * 60 + cal.get(Calendar.MINUTE); - return new Long (time ); - } - - 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()); - - if (time == null) { - DateTimeUtils.setTime(cal,0L); - } else { - 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(); - - } - - - public static Collection getActivatedDays(Date referenceDate, Collection days) { - - ArrayList lDays = new ArrayList(); - - if (referenceDate == null) return lDays; - - for (Date day : days) { - long dateDiff2 = DateTimeUtils.getDateDifference(referenceDate,day); - lDays.add(dateDiff2); - } - - return lDays; - - } - - public static Date dateToUTC(Date date){ - return new Date(date.getTime() - Calendar.getInstance().getTimeZone().getOffset(date.getTime())); - } - -} diff --git a/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java b/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java deleted file mode 100644 index d203487..0000000 --- a/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java +++ /dev/null @@ -1,2222 +0,0 @@ -/* - * - */ -package org.uic.barcode.ticket.api.utils; - -import java.io.IOException; -import java.util.Date; -import java.util.List; - -import org.uic.barcode.ticket.api.asn.omv1.BerthDetailData; -import org.uic.barcode.ticket.api.asn.omv1.CarCarriageReservationData; -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.CompartmentDetailsType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CountermarkData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerCardData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DelayConfirmation; -import org.uic.barcode.ticket.api.asn.omv1.DeltaCoordinates; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.FIPTicketData; -import org.uic.barcode.ticket.api.asn.omv1.GeoCoordinateType; -import org.uic.barcode.ticket.api.asn.omv1.IncludedOpenTicketType; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.LineType; -import org.uic.barcode.ticket.api.asn.omv1.LuggageRestrictionType; -import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; -import org.uic.barcode.ticket.api.asn.omv1.ParkingGroundData; -import org.uic.barcode.ticket.api.asn.omv1.PassData; -import org.uic.barcode.ticket.api.asn.omv1.PlacesType; -import org.uic.barcode.ticket.api.asn.omv1.PolygoneType; -import org.uic.barcode.ticket.api.asn.omv1.RegionalValidityType; -import org.uic.barcode.ticket.api.asn.omv1.RegisteredLuggageType; -import org.uic.barcode.ticket.api.asn.omv1.ReservationData; -import org.uic.barcode.ticket.api.asn.omv1.ReturnRouteDescriptionType; -import org.uic.barcode.ticket.api.asn.omv1.RouteSectionType; -import org.uic.barcode.ticket.api.asn.omv1.SeriesDetailType; -import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; -import org.uic.barcode.ticket.api.asn.omv1.TariffType; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TimeRangeType; -import org.uic.barcode.ticket.api.asn.omv1.TokenType; -import org.uic.barcode.ticket.api.asn.omv1.TrainLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; -import org.uic.barcode.ticket.api.asn.omv1.ValidityPeriodDetailType; -import org.uic.barcode.ticket.api.asn.omv1.ValidityPeriodType; -import org.uic.barcode.ticket.api.asn.omv1.VatDetailType; -import org.uic.barcode.ticket.api.asn.omv1.ViaStationType; -import org.uic.barcode.ticket.api.asn.omv1.VoucherData; -import org.uic.barcode.ticket.api.asn.omv1.ZoneType; -import org.uic.barcode.ticket.api.impl.SimpleUicTicketObjectFactory; -import org.uic.barcode.ticket.api.spec.IBerth; -import org.uic.barcode.ticket.api.spec.IBerthTypeType; -import org.uic.barcode.ticket.api.spec.ICarCarriageReservation; -import org.uic.barcode.ticket.api.spec.ICardReference; -import org.uic.barcode.ticket.api.spec.ICompartmentDetails; -import org.uic.barcode.ticket.api.spec.ICompartmentGenderType; -import org.uic.barcode.ticket.api.spec.ICompartmentPositionType; -import org.uic.barcode.ticket.api.spec.IControlDetail; -import org.uic.barcode.ticket.api.spec.ICounterMark; -import org.uic.barcode.ticket.api.spec.ICustomerCard; -import org.uic.barcode.ticket.api.spec.ICustomerStatusDescription; -import org.uic.barcode.ticket.api.spec.IDelayConfirmation; -import org.uic.barcode.ticket.api.spec.IDocumentExtension; -import org.uic.barcode.ticket.api.spec.IExtension; -import org.uic.barcode.ticket.api.spec.IFipTicket; -import org.uic.barcode.ticket.api.spec.IGenderType; -import org.uic.barcode.ticket.api.spec.IGeoCoordinate; -import org.uic.barcode.ticket.api.spec.IGeoCoordinateSystemType; -import org.uic.barcode.ticket.api.spec.IGeoUnitType; -import org.uic.barcode.ticket.api.spec.IHemisphereLatitudeType; -import org.uic.barcode.ticket.api.spec.IHemisphereLongitudeType; -import org.uic.barcode.ticket.api.spec.IIncludedOpenTicket; -import org.uic.barcode.ticket.api.spec.IIssuingDetail; -import org.uic.barcode.ticket.api.spec.ILine; -import org.uic.barcode.ticket.api.spec.ILinkMode; -import org.uic.barcode.ticket.api.spec.ILoadingDeckType; -import org.uic.barcode.ticket.api.spec.ILuggageRestriction; -import org.uic.barcode.ticket.api.spec.IOpenTicket; -import org.uic.barcode.ticket.api.spec.IParkingGround; -import org.uic.barcode.ticket.api.spec.IPass; -import org.uic.barcode.ticket.api.spec.IPassengerType; -import org.uic.barcode.ticket.api.spec.IPlaces; -import org.uic.barcode.ticket.api.spec.IPolygone; -import org.uic.barcode.ticket.api.spec.IPriceTypeType; -import org.uic.barcode.ticket.api.spec.IRegionalValidity; -import org.uic.barcode.ticket.api.spec.IRegisteredLuggage; -import org.uic.barcode.ticket.api.spec.IReservation; -import org.uic.barcode.ticket.api.spec.IReturnRouteDescription; -import org.uic.barcode.ticket.api.spec.IRoofRackType; -import org.uic.barcode.ticket.api.spec.IRouteSection; -import org.uic.barcode.ticket.api.spec.ISeriesDataDetails; -import org.uic.barcode.ticket.api.spec.IServiceBrand; -import org.uic.barcode.ticket.api.spec.IStationCodeTable; -import org.uic.barcode.ticket.api.spec.IStationPassage; -import org.uic.barcode.ticket.api.spec.ITariff; -import org.uic.barcode.ticket.api.spec.ITicketLink; -import org.uic.barcode.ticket.api.spec.ITicketType; -import org.uic.barcode.ticket.api.spec.ITimeRange; -import org.uic.barcode.ticket.api.spec.IToken; -import org.uic.barcode.ticket.api.spec.ITrainLink; -import org.uic.barcode.ticket.api.spec.ITravelClassType; -import org.uic.barcode.ticket.api.spec.ITraveler; -import org.uic.barcode.ticket.api.spec.ITravelerDetail; -import org.uic.barcode.ticket.api.spec.IUicRailTicket; -import org.uic.barcode.ticket.api.spec.IUicTicketObjectFactory; -import org.uic.barcode.ticket.api.spec.IValidityDetails; -import org.uic.barcode.ticket.api.spec.IValidityRange; -import org.uic.barcode.ticket.api.spec.IVatDetail; -import org.uic.barcode.ticket.api.spec.IViaStation; -import org.uic.barcode.ticket.api.spec.IVoucher; -import org.uic.barcode.ticket.api.spec.IZone; - - -/** - * The Class OpenAsn2ApiDecoder. - */ -public class OpenAsn2ApiDecoder { - - IUicTicketObjectFactory factory = SimpleUicTicketObjectFactory.getInstance(); - - /** - * Decode from asn.1 unaligned PER encoded data. - * - * @param asnUicRailTicketData the asn uic rail ticket data - * @return the decoded uic rail ticket - * @throws IOException Signals that an I/O exception has occurred. - */ - public IUicRailTicket decodeFromAsn (UicRailTicketData asnUicRailTicketData) throws IOException{ - - IUicRailTicket uicRailTicket = factory.createUicRailTicket(); - - populateFromAsn1Model(uicRailTicket, asnUicRailTicketData); - - return uicRailTicket; - - } - - /** - * Decode from asn.1 unaligned PER encoded data. - * - * @param data byte array of the asn.1 encoded FCB data - * @return the decoded uic rail ticket - * @throws IOException Signals that an I/O exception has occurred. - */ - public IUicRailTicket decodeFromAsn (byte[] data) throws IOException{ - - UicRailTicketData asnUicRailTicketData = UicRailTicketData.decode(data); - - IUicRailTicket uicRailTicket = factory.createUicRailTicket(); - - populateFromAsn1Model(uicRailTicket, asnUicRailTicketData); - - return uicRailTicket; - - } - - - - - - /** - * Populate from asn1 model. - * - * @param uicRailTicket the uic rail ticket - * @param asnUicRailTicketData the asn uic rail ticket data - */ - protected void populateFromAsn1Model(IUicRailTicket uicRailTicket, UicRailTicketData asnUicRailTicketData) { - - if (asnUicRailTicketData.getExtension()!= null && !asnUicRailTicketData.getExtension().isEmpty()) { - for (ExtensionData asnExtension : asnUicRailTicketData.getExtension()){ - uicRailTicket.addExtension(convertExtension(asnExtension)); - } - } - - if (asnUicRailTicketData.getIssuingDetail() != null) { - populateIssuingDetail(asnUicRailTicketData.getIssuingDetail(), uicRailTicket.getIssuerDetails()); - } - - if (asnUicRailTicketData.getControlDetail() != null) { - populateControlDetails(asnUicRailTicketData.getControlDetail(),uicRailTicket.getControlDetails()); - } - - if (asnUicRailTicketData.getTravelerDetail() != null) { - populateTravelerDetails(asnUicRailTicketData.getTravelerDetail(),uicRailTicket.getTravelerDetails()); - } - - if (asnUicRailTicketData.getTransportDocument() != null && !asnUicRailTicketData.getTransportDocument().isEmpty()) { - - // date is already converted to local time, use UTC for internal calculations - Date localIssuingDate = uicRailTicket.getIssuerDetails().getIssuingDate(); - Date issuingDate = DateTimeUtils.dateToUTC(localIssuingDate); - - populateTravelDocuments(asnUicRailTicketData.getTransportDocument(),uicRailTicket, issuingDate); - } - - - } - - - - - - - /** - * Populate travel documents. - * - * @param asnTransportDocuments the asn transport documents - * @param uicRailTicket the uic rail ticket - * @param issuingDate the issuing date - */ - protected void populateTravelDocuments(List asnTransportDocuments,IUicRailTicket uicRailTicket, Date issuingDate) { - - for ( DocumentData asnDocument : asnTransportDocuments){ - - if (asnDocument.getTicket() == null) { - break; - } - - if (asnDocument.getTicket().getExtension() != null) { - IDocumentExtension ticket = convertDocumentExtension(asnDocument.getTicket().getExtension()); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addDocumentExtension(ticket); - } - - if (asnDocument.getTicket().getCarCarriageReservation() != null) { - ICarCarriageReservation ticket = convertCarCarriage(asnDocument.getTicket().getCarCarriageReservation(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addCarCarriageReservation(ticket); - } - - if (asnDocument.getTicket().getCounterMark() != null) { - ICounterMark ticket = convertCountermark(asnDocument.getTicket().getCounterMark(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addCounterMark(ticket); - } - - if (asnDocument.getTicket().getCustomerCard()!= null) { - ICustomerCard ticket = convertCustomerCard(asnDocument.getTicket().getCustomerCard(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addCustomerCard(ticket); - } - - if (asnDocument.getTicket().getFipTicket()!= null) { - IFipTicket ticket = convertFipTicket(asnDocument.getTicket().getFipTicket(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addFipTicket(ticket); - } - - if (asnDocument.getTicket().getOpenTicket()!= null) { - IOpenTicket ticket = convertOpenTicket(asnDocument.getTicket().getOpenTicket(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addOpenTicket(ticket); - } - - - if (asnDocument.getTicket().getParkingGround()!= null) { - IParkingGround ticket = convertParkingGround(asnDocument.getTicket().getParkingGround(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addParkingGround(ticket); - } - - if (asnDocument.getTicket().getPass() != null) { - IPass ticket = convertPass(asnDocument.getTicket().getPass(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addPass(ticket); - } - - if (asnDocument.getTicket().getStationPassage() != null) { - IStationPassage ticket = convertStationPassage(asnDocument.getTicket().getStationPassage(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addStationPassage(ticket); - } - - if (asnDocument.getTicket().getReservation() != null) { - IReservation ticket = convertReservation(asnDocument.getTicket().getReservation(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addReservation(ticket); - } - - if (asnDocument.getTicket().getVoucher()!= null) { - IVoucher ticket = convertVoucher(asnDocument.getTicket().getVoucher(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addVoucher(ticket); - } - - if (asnDocument.getTicket().getDelayConfirmation()!= null) { - IDelayConfirmation ticket = convertDelayConfirmation(asnDocument.getTicket().getDelayConfirmation(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addDelayConfirmation(ticket); - } - } - } - - - - - - - - - - - private IToken convertToken(TokenType asnToken) { - - if (asnToken == null) return null; - - IToken token = factory.createToken(); - token.setToken(asnToken.getToken()); - token.setTokenProvider(UicEncoderUtils.mapToString(asnToken.getTokenProviderNum(), asnToken.getTokenProviderIA5())); - token.setTokenSpecification(asnToken.getTokenSpecification()); - return token; - } - - - - private IDelayConfirmation convertDelayConfirmation(DelayConfirmation asnDocument, Date issuingDate) { - - IDelayConfirmation document = factory.createDelayConfirmation(); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum().longValue(),asnDocument.getReferenceIA5())); - - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - document.setStation(UicEncoderUtils.mapToString(asnDocument.getStationNum(),asnDocument.getStationIA5())); - - document.setStationName(asnDocument.getStationNameUTF8()); - - document.setArrivalDate(asnDocument.getPlannedArrivalDate()); - document.setArrivalUTCoffset(asnDocument.getDepartureUTCOffset()); - - if (asnDocument.getConfirmationType() != null) { - document.setConfirmationType(asnDocument.getConfirmationType().ordinal()); - } - - if (asnDocument.getDelay() != null) { - document.setDelay(asnDocument.getDelay().intValue()); - } - - if (asnDocument.getTrainCancelled() != null) { - document.setTrainCancelled(asnDocument.getTrainCancelled()); - } else { - document.setTrainCancelled(false); - } - - if (asnDocument.getAffectedTickets() !=null && !asnDocument.getAffectedTickets().isEmpty()) { - for (TicketLinkType asnTicketLink : asnDocument.getAffectedTickets()) { - document.addLinkedTicket(convertTicketLink(asnTicketLink)); - } - } - - return document; - } - - - - - - - /** - * Convert reservation. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i reservation - */ - protected IReservation convertReservation(ReservationData asnDocument, Date issuingDate) { - - IReservation document = factory.createReservation(); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - document.setFromStation(UicEncoderUtils.mapToString(asnDocument.getFromStationNum(),asnDocument.getFromStationIA5())); - document.setToStation(UicEncoderUtils.mapToString(asnDocument.getToStationNum(),asnDocument.getToStationIA5())); - document.setFromStationName(asnDocument.getFromStationNameUTF8()); - document.setToStationName(asnDocument.getToStationNameUTF8()); - - document.setDepartureDate(asnDocument.getDepartureDate(issuingDate)); - document.setArrivalDate(asnDocument.getArrivalDate(issuingDate)); - - document.setDepartureUTCoffset(asnDocument.getDepartureUTCOffset()); - if (asnDocument.getArrivalUTCOffset() != null) { - document.setArrivalUTCoffset(asnDocument.getArrivalUTCOffset()); - } else { - document.setArrivalUTCoffset(asnDocument.getDepartureUTCOffset()); - } - - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - - document.setCompartmentDetails(convertCompartmentDetails(asnDocument.getCompartmentDetails())); - - document.setLuggageRestriction(convertLuggageRestriction(asnDocument.getLuggage())); - - if (asnDocument.getNumberOfOverbooked() != null) { - document.setNumberOfOverbooked(asnDocument.getNumberOfOverbooked().intValue()); - } - - if (asnDocument.getNumberOfSupplements() != null) { - document.setNumberOfSupplements(asnDocument.getNumberOfSupplements().intValue()); - } - - if (asnDocument.getPlaces()!=null) { - document.setPlaces(convertPlaces(asnDocument.getPlaces())); - } - - if (asnDocument.getBicyclePlaces()!=null) { - document.setBicyclePlaces(convertPlaces(asnDocument.getBicyclePlaces())); - } - - document.setPriceType(IPriceTypeType.valueOf(asnDocument.getPriceType().name())); - - IServiceBrand serviceBrand = factory.createServiceBrand(); - - if (asnDocument.getServiceBrand()!=null){ - serviceBrand.setServiceBrand(asnDocument.getServiceBrand().intValue()); - } - serviceBrand.setServiceBrandAbbreviation(asnDocument.getServiceBrandAbrUTF8()); - serviceBrand.setServiceBrandDescription(asnDocument.getServiceBrandNameUTF8()); - - document.setServiceBrand(serviceBrand); - - if (asnDocument.getServiceLevel()!=null && asnDocument.getServiceLevel().length() != 0) { - document.setServiceLevel(asnDocument.getServiceLevel()); - } - - document.setTrain(UicEncoderUtils.mapToString(asnDocument.getTrainNum(), asnDocument.getTrainIA5())); - - if (asnDocument.getTypeOfSupplement()!=null) { - document.setTypeOfSupplement(asnDocument.getTypeOfSupplement().intValue()); - } - - if (asnDocument.getBerth()!=null && !asnDocument.getBerth().isEmpty()){ - for (BerthDetailData asnBerth : asnDocument.getBerth()){ - document.addBerth(convertBerth(asnBerth)); - } - } - - if (asnDocument.getCarrierNum()!=null && !asnDocument.getCarrierNum().isEmpty()){ - for(Long carrier :asnDocument.getCarrierNum()){ - document.addCarrier(carrier.toString()); - } - } - if (asnDocument.getCarrierIA5()!=null && !asnDocument.getCarrierIA5().isEmpty()){ - for(String carrier :asnDocument.getCarrierIA5()){ - document.addCarrier(carrier); - } - } - - if (asnDocument.getTariff()!=null && !asnDocument.getTariff().isEmpty()){ - for (TariffType asnTariff : asnDocument.getTariff()) { - document.addTariff(convertTariff(asnTariff)); - } - } - - document.setPrice(asnDocument.getPrice()); - - if (asnDocument.getVatDetails() != null && !asnDocument.getVatDetails().isEmpty()){ - for (VatDetailType vat : asnDocument.getVatDetails()) { - document.addVatDetail(decodeVatDetail(vat)); - } - } - - return document; - } - - - - - - - - - - /** - * Convert car carriage. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i car carriage reservation - */ - protected ICarCarriageReservation convertCarCarriage(CarCarriageReservationData asnDocument , Date issuingDate) { - - ICarCarriageReservation document = factory.createCarCarriageReservation(); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - document.setFromStation(UicEncoderUtils.mapToString(asnDocument.getFromStationNum(),asnDocument.getFromStationIA5())); - document.setToStation(UicEncoderUtils.mapToString(asnDocument.getToStationNum(),asnDocument.getToStationIA5())); - document.setFromStationName(asnDocument.getFromStationNameUTF8()); - document.setToStationName(asnDocument.getToStationNameUTF8()); - - document.setBeginLoading(asnDocument.getBeginLoadingDate(issuingDate)); - document.setEndLoading(asnDocument.getEndLoadingDate(issuingDate)); - - document.setLoadingTimeUTCoffset(asnDocument.getLoadingUTCOffset()); - - - if(asnDocument.getAttachedBicycles()!=null){ - document.setAttachedBicycles(asnDocument.getAttachedBicycles().intValue()); - } - - if (asnDocument.getAttachedBoats()!=null) { - document.setAttachedBoats(asnDocument.getAttachedBoats().intValue()); - } - - if(asnDocument.getAttachedSurfboards()!=null) { - document.setAttachedSurfboards(asnDocument.getAttachedSurfboards().intValue()); - } - - if (asnDocument.getBoatCategory()!=null){ - document.setBoatCategory(asnDocument.getBoatCategory().intValue()); - } - - if(asnDocument.getCarCategory()!=null){ - document.setCarCategory(asnDocument.getCarCategory().intValue()); - } - - if (asnDocument.getLoadingDeck()!=null){ - document.setLoadingDeck(ILoadingDeckType.valueOf(asnDocument.getLoadingDeck().name())); - } - - if(asnDocument.getLoadingListEntry()!=null){ - document.setLoadingListEntry(asnDocument.getLoadingListEntry().intValue()); - } - - if (asnDocument.getRoofRackHeight()!=null){ - document.setRoofRackHeight(asnDocument.getRoofRackHeight().intValue()); - } - - document.setNumberPlate(asnDocument.getNumberPlate()); - document.setTrailerPlate(asnDocument.getTrailerPlate()); - - if(asnDocument.getRoofRackType()!=null){ - document.setRoofRackType(IRoofRackType.valueOf(asnDocument.getRoofRackType().name())); - } - - if(asnDocument.getTextileRoof()) { - document.setTextileRoof(asnDocument.getTextileRoof()); - } - - - document.setCompartmentDetails(convertCompartmentDetails(asnDocument.getCompartmentDetails())); - - if (asnDocument.getCarrierNum()!=null && !asnDocument.getCarrierNum().isEmpty()){ - for(Long carrier :asnDocument.getCarrierNum()){ - document.addCarrier(carrier.toString()); - } - } - if (asnDocument.getCarrierIA5()!=null && !asnDocument.getCarrierIA5().isEmpty()){ - for(String carrier :asnDocument.getCarrierIA5()){ - document.addCarrier(carrier); - } - } - - if (asnDocument.getCoach()!=null) { - document.setCoach(asnDocument.getCoach()); - } - if (asnDocument.getPlace()!=null) { - document.setPlace(asnDocument.getPlace()); - } - - - document.setPriceType(IPriceTypeType.valueOf(asnDocument.getPriceType().name())); - - IServiceBrand serviceBrand = factory.createServiceBrand(); - - if (asnDocument.getServiceBrand()!=null){ - serviceBrand.setServiceBrand(asnDocument.getServiceBrand().intValue()); - } - serviceBrand.setServiceBrandAbbreviation(asnDocument.getServiceBrandAbrUTF8()); - serviceBrand.setServiceBrandDescription(asnDocument.getServiceBrandNameUTF8()); - - document.setServiceBrand(serviceBrand); - - document.setTrain(UicEncoderUtils.mapToString(asnDocument.getTrainNum(), asnDocument.getTrainIA5())); - - - if (asnDocument.getTariff()!=null){ - document.setTariff(convertTariff(asnDocument.getTariff())); - } - - document.setPrice(asnDocument.getPrice()); - - if (asnDocument.getVatDetails() != null && !asnDocument.getVatDetails().isEmpty()){ - for (VatDetailType vat : asnDocument.getVatDetails()) { - document.addVatDetail(decodeVatDetail(vat)); - } - } - - return null; - } - - - private IVatDetail decodeVatDetail(VatDetailType asnVat) { - - IVatDetail vat = factory.createVatDetail(); - - vat.setAmount(asnVat.getAmount()); - if (asnVat.getPercentage() != null){ - vat.setPercentage(asnVat.getPercentage().intValue()); - } - if (asnVat.getCountry() != null) { - vat.setCountry(asnVat.getCountry().intValue()); - } - vat.setVatId(asnVat.getVatId()); - return vat; - } - - - - - - - - /** - * Convert compartment details. - * - * @param asnDetails the asn details - * @return the i compartment details - */ - protected ICompartmentDetails convertCompartmentDetails(CompartmentDetailsType asnDetails) { - - if (asnDetails == null) return null; - - ICompartmentDetails details = factory.createCompartmentDetails(); - - if (asnDetails.getCompartmentType()!=null) { - details.setCompartmentType(asnDetails.getCompartmentType().intValue()); - } - - if (asnDetails.getCoachType()!=null){ - details.setCoachType(asnDetails.getCoachType().intValue()); - } - - if (asnDetails.getSpecialAllocation()!=null) { - details.setSpecialAllocation(asnDetails.getSpecialAllocation().intValue()); - } - - details.setCoachTypeDescr(asnDetails.getCoachTypeDescr()); - details.setCompartmentTypeDescr(asnDetails.getCompartmentTypeDescr()); - details.setSpecialAllocationDescr(asnDetails.getSpecialAllocationDescr()); - - details.setPosition(ICompartmentPositionType.valueOf(asnDetails.getPosition().name())); - - return details; - } - - /** - * Convert places. - * - * @param asnPlaces the asn places - * @return the i places - */ - protected IPlaces convertPlaces(PlacesType asnPlaces) { - - if (asnPlaces == null) return null; - - IPlaces places = factory.createPlaces(); - - places.setCoach(asnPlaces.getCoach()); - places.setPlaceDescription(asnPlaces.getPlaceDescription()); - - if (asnPlaces.getPlaceNum()!=null && !asnPlaces.getPlaceNum().isEmpty()){ - for (Long place: asnPlaces.getPlaceNum()){ - places.addPlace(place.toString()); - } - } - - if (asnPlaces.getPlaceIA5()!=null && !asnPlaces.getPlaceIA5().isEmpty()){ - for (String place: asnPlaces.getPlaceIA5()){ - places.addPlace(place); - } - } - - places.setPlaceString(asnPlaces.getPlaceString()); - - return places; - } - - /** - * Convert berth. - * - * @param asnBerth the asn berth - * @return the i berth - */ - protected IBerth convertBerth(BerthDetailData asnBerth) { - - if (asnBerth == null) return null; - - IBerth berth = factory.createBerth(); - if (asnBerth.getGender()!= null) { - berth.setGender(ICompartmentGenderType.valueOf(asnBerth.getGender().name())); - } - if (asnBerth.getNumberOfBerths()!=null) { - berth.setNumberOfBerths(asnBerth.getNumberOfBerths().intValue()); - } - if (asnBerth.getBerthType()!=null){ - berth.setType(IBerthTypeType.valueOf(asnBerth.getBerthType().name())); - } - - return berth; - } - - /** - * Convert countermark. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i counter mark - */ - protected ICounterMark convertCountermark(CountermarkData asnDocument , Date issuingDate) { - - ICounterMark document = factory.createCounterMark(); - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - - document.setValidFromUTCoffset(asnDocument.getValidFromUTCOffset()); - if (asnDocument.getValidUntilUTCOffset() != null) { - document.setValidUntilUTCoffset(asnDocument.getValidUntilUTCOffset()); - } else { - document.setValidUntilUTCoffset(asnDocument.getValidFromUTCOffset()); - } - - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - document.setTicketReference(UicEncoderUtils.mapToString(asnDocument.getTicketReferenceNum(),asnDocument.getTicketReferenceIA5())); - - document.setFromStation(UicEncoderUtils.mapToString(asnDocument.getFromStationNum(),asnDocument.getFromStationIA5())); - document.setToStation(UicEncoderUtils.mapToString(asnDocument.getToStationNum(),asnDocument.getToStationIA5())); - - document.setFromStationName(asnDocument.getFromStationNameUTF8()); - document.setToStationName(asnDocument.getToStationNameUTF8()); - document.setValidRegionDesc(asnDocument.getValidRegionDesc()); - - if (asnDocument.getValidRegion()!= null && !asnDocument.getValidRegion().isEmpty()) { - for (RegionalValidityType validRegion :asnDocument.getValidRegion()){ - document.addValidRegionList(convertValidRegion(validRegion, issuingDate)); - } - } - - document.setReturnDescription(convertReturnDescription(asnDocument.getReturnDescription(), issuingDate)); - - - if(asnDocument.getReturnIncluded()!=null){ - document.setReturnIncluded(asnDocument.getReturnIncluded()); - } else { - document.setReturnIncluded(false); - } - - - - document.setGroupName(asnDocument.getGroupName()); - - if (asnDocument.getNumberOfCountermark() != null) { - document.setNumberOfCountermark(asnDocument.getNumberOfCountermark().intValue()); - } - - if (asnDocument.getTotalOfCountermarks() != null) { - document.setTotalOfCountermarks(asnDocument.getTotalOfCountermarks().intValue()); - } - - return document; - - } - - /** - * Convert return description. - * - * @param asnReturnRoute the asn return route - * @param issuingDate the issuing date - * @return the i return route description - */ - protected IReturnRouteDescription convertReturnDescription(ReturnRouteDescriptionType asnReturnRoute, Date issuingDate) { - - if (asnReturnRoute == null) return null; - - IReturnRouteDescription route = factory.createReturnRouteDescription(); - - route.setFromStation(UicEncoderUtils.mapToString(asnReturnRoute.getFromStationNum(),asnReturnRoute.getFromStationIA5())); - route.setToStation(UicEncoderUtils.mapToString(asnReturnRoute.getToStationNum(),asnReturnRoute.getToStationIA5())); - - route.setFromStationName(asnReturnRoute.getFromStationNameUTF8()); - route.setToStationName(asnReturnRoute.getToStationNameUTF8()); - route.setValidRegionDesc(asnReturnRoute.getValidReturnRegionDesc()); - - if (asnReturnRoute.getValidReturnRegion()!= null && !asnReturnRoute.getValidReturnRegion().isEmpty()) { - for (RegionalValidityType validRegion :asnReturnRoute.getValidReturnRegion()){ - route.addValidRegionList(convertValidRegion(validRegion, issuingDate)); - } - } - - return route; - } - - /** - * Convert luggage restriction. - * - * @param asnLuggage the asn luggage - * @return the i luggage restriction - */ - protected ILuggageRestriction convertLuggageRestriction(LuggageRestrictionType asnLuggage) { - - if (asnLuggage == null) return null; - - ILuggageRestriction luggage = factory.createLuggageRestriction(); - if (asnLuggage.getMaxHandLuggagePieces()!=null){ - luggage.setMaxHandLuggagePieces(asnLuggage.getMaxHandLuggagePieces().intValue()); - } - if (asnLuggage.getMaxNonHandLuggagePieces()!=null){ - luggage.setMaxNonHandLuggagePieces(asnLuggage.getMaxNonHandLuggagePieces().intValue()); - } - - - if (asnLuggage.getRegisteredLuggage()!= null &&!asnLuggage.getRegisteredLuggage().isEmpty()){ - for (RegisteredLuggageType rl: asnLuggage.getRegisteredLuggage()){ - luggage.addRegisteredLuggage(convertRegisteredLuggage(rl)); - } - } - return luggage; - } - - /** - * Convert registered luggage. - * - * @param rl the rl - * @return the i registered luggage - */ - protected IRegisteredLuggage convertRegisteredLuggage(RegisteredLuggageType rl) { - - if (rl == null) return null; - - IRegisteredLuggage luggage= factory.createRegisteredLuggage(); - if (rl.getMaxSize()!=null){ - if (rl.getMaxSize()!=null) { - luggage.setMaxSize(rl.getMaxSize().intValue()); - } - } - if (rl.getMaxWeight()!=null){ - if(rl.getMaxWeight()!=null){ - luggage.setMaxWeight(rl.getMaxWeight().intValue()); - } - } - luggage.setRegistrationId(rl.getRegistrationId()); - return luggage; - } - - - /** - * Convert open ticket. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i open ticket - */ - protected IOpenTicket convertOpenTicket(OpenTicketData asnDocument , Date issuingDate) { - - IOpenTicket document = factory.createOpenTicket(); - - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - - document.setValidFromUTCoffset(asnDocument.getValidFromUTCOffset()); - if (asnDocument.getValidUntilUTCOffset() != null) { - document.setValidUntilUTCoffset(asnDocument.getValidUntilUTCOffset()); - } else { - document.setValidUntilUTCoffset(asnDocument.getValidFromUTCOffset()); - } - - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - if (asnDocument.getExcludedServiceBrands()!=null && !asnDocument.getExcludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getExcludedServiceBrands()){ - document.addExcludedServiceBrand(number.intValue()); - } - } - - if (asnDocument.getCarriersNum()!=null && !asnDocument.getCarriersNum().isEmpty()){ - for(Long carrier :asnDocument.getCarriersNum()){ - document.addIncludedCarrier(carrier.toString()); - } - } - if (asnDocument.getCarriersIA5()!=null && !asnDocument.getCarriersIA5().isEmpty()){ - for(String carrier :asnDocument.getCarriersIA5()){ - document.addIncludedCarrier(carrier); - } - } - - - if (asnDocument.getIncludedServiceBrands()!=null && !asnDocument.getIncludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getIncludedServiceBrands()){ - document.addIncludedServiceBrand(number.intValue()); - } - } - - if (asnDocument.getTariffs()!=null && !asnDocument.getTariffs().isEmpty()){ - for(TariffType asnTariff :asnDocument.getTariffs()){ - document.addTariff(convertTariff(asnTariff)); - } - } - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - document.setFromStation(UicEncoderUtils.mapToString(asnDocument.getFromStationNum(),asnDocument.getFromStationIA5())); - document.setToStation(UicEncoderUtils.mapToString(asnDocument.getToStationNum(),asnDocument.getToStationIA5())); - document.setFromStationName(asnDocument.getFromStationNameUTF8()); - document.setToStationName(asnDocument.getToStationNameUTF8()); - document.setValidRegionDesc(asnDocument.getValidRegionDesc()); - if (asnDocument.getValidRegion()!= null && !asnDocument.getValidRegion().isEmpty()) { - for (RegionalValidityType validRegion :asnDocument.getValidRegion()){ - document.addValidRegionList(convertValidRegion(validRegion, issuingDate)); - } - } - - if (asnDocument.getIssuerAutorizationId() != null) { - document.setAuthorizationCode(asnDocument.getIssuerAutorizationId().intValue()); - } - - if (asnDocument.getExtIssuerId() != null) { - document.setExternalIssuer(asnDocument.getExtIssuerId().intValue()); - } - - document.setLuggageRestriction(convertLuggageRestriction(asnDocument.getLuggage())); - - document.setReturnDescription(convertReturnDescription(asnDocument.getReturnDescription(), issuingDate)); - if(asnDocument.getReturnIncluded()!=null){ - document.setReturnIncluded(asnDocument.getReturnIncluded()); - } - - if (asnDocument.getActivatedDay()!=null && !asnDocument.getActivatedDay().isEmpty()) { - document.getActivatedDays().addAll(asnDocument.getActivatedDays(issuingDate)); - } - - if (asnDocument.getIncludedAddOns()!= null && !asnDocument.getIncludedAddOns().isEmpty()) { - - for (IncludedOpenTicketType asnAddOn :asnDocument.getIncludedAddOns()) { - - IIncludedOpenTicket addOn = convertIncludedOpenTicket(asnAddOn, issuingDate, document.getClassCode()); - if (addOn != null) { - document.addIncludedAddOn(addOn); - } - } - - - - } - - document.setPrice(asnDocument.getPrice()); - - if (asnDocument.getVatDetails() != null && !asnDocument.getVatDetails().isEmpty()){ - for (VatDetailType vat : asnDocument.getVatDetails()) { - document.addVatDetail(decodeVatDetail(vat)); - } - } - - return document; - - } - - - - /** - * Convert included open ticket. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @param classCode the class code - * @return the simple included open ticket - */ - private IIncludedOpenTicket convertIncludedOpenTicket( IncludedOpenTicketType asnDocument, Date issuingDate,ITravelClassType classCode) { - - IIncludedOpenTicket document = factory.createIncludedOpenTicket(); - - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } else { - document.setClassCode(classCode); - } - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - - document.setValidFromUTCoffset(asnDocument.getValidFromUTCOffset()); - if (asnDocument.getValidUntilUTCOffset() != null) { - document.setValidUntilUTCoffset(asnDocument.getValidUntilUTCOffset()); - } else { - document.setValidUntilUTCoffset(asnDocument.getValidFromUTCOffset()); - } - - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - if (asnDocument.getExcludedServiceBrands()!=null && !asnDocument.getExcludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getExcludedServiceBrands()){ - document.addExcludedServiceBrand(number.intValue()); - } - } - if (asnDocument.getIncludedCarriersNum()!=null && !asnDocument.getIncludedCarriersNum().isEmpty()){ - for(Long carrier :asnDocument.getIncludedCarriersNum()){ - document.addIncludedCarrier(carrier.toString()); - } - } - if (asnDocument.getIncludedCarriersIA5()!=null && !asnDocument.getIncludedCarriersIA5().isEmpty()){ - for(String carrier :asnDocument.getIncludedCarriersIA5()){ - document.addIncludedCarrier(carrier); - } - } - - if (asnDocument.getIncludedServiceBrands()!=null && !asnDocument.getIncludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getIncludedServiceBrands()){ - document.addIncludedServiceBrand(number.intValue()); - } - } - - if (asnDocument.getTariffs()!=null && !asnDocument.getTariffs().isEmpty()){ - for(TariffType asnTariff :asnDocument.getTariffs()){ - document.addTariff(convertTariff(asnTariff)); - } - } - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - - if (asnDocument.getValidRegion()!= null && !asnDocument.getValidRegion().isEmpty()) { - for (RegionalValidityType validRegion :asnDocument.getValidRegion()){ - document.addValidRegionList(convertValidRegion(validRegion, issuingDate)); - } - } - - if (asnDocument.getIssuerAutorizationId()!=null){ - document.setAuthorizationCode(asnDocument.getIssuerAutorizationId().intValue()); - } - if (asnDocument.getExternalIssuerId()!=null){ - document.setExternalIssuer(asnDocument.getExternalIssuerId().intValue()); - } - return document; - } - - - - - - - - /** - * Convert station passage. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i station passage - */ - protected IStationPassage convertStationPassage(StationPassageData asnDocument , Date issuingDate) { - - IStationPassage document = factory.createStationPassage(); - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - - document.setValidFromUTCoffset(asnDocument.getValidFromUTCOffset()); - if (asnDocument.getValidUntilUTCOffset() != null) { - document.setValidUntilUTCoffset(asnDocument.getValidUntilUTCOffset()); - } else { - document.setValidUntilUTCoffset(asnDocument.getValidFromUTCOffset()); - } - - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - if (asnDocument.getNumberOfDaysValid()!=null) { - document.setNumberOfdaysAllowed(asnDocument.getNumberOfDaysValid().intValue()); - } - - if (asnDocument.getStationNum()!=null && !asnDocument.getStationNum().isEmpty()){ - for (Long station : asnDocument.getStationNum()) { - if (station != null) { - document.addStation(station.toString()); - } - } - } - if (asnDocument.getStationIA5()!=null && !asnDocument.getStationIA5().isEmpty()){ - for (String station : asnDocument.getStationIA5()) { - document.addStation(station); - } - } - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - document.setProductName(asnDocument.getProductName()); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - if (asnDocument.getStationNameUTF8()!= null && asnDocument.getStationNameUTF8().isEmpty() ) { - for (String name : asnDocument.getStationNameUTF8()) { - document.addStation(name); - } - } - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - - document.setExtension(convertExtension(asnDocument.getExtension())); - - if (asnDocument.getAreaCodeIA5() != null && !asnDocument.getAreaCodeIA5().isEmpty()) { - for (String code : asnDocument.getAreaCodeIA5()) { - document.addAreaCode(code); - } - } - if (asnDocument.getAreaCodeNum() != null && !asnDocument.getAreaCodeNum().isEmpty()) { - for (Long code : asnDocument.getAreaCodeNum()) { - if (code != null) { - document.addAreaCode(code.toString()); - } - } - } - - if (asnDocument.getAreaNameUTF8() != null && !asnDocument.getAreaNameUTF8().isEmpty()) { - for (String code : asnDocument.getAreaNameUTF8()) { - document.addAreaName(code); - } - } - - - - return document; - } - - - /** - * Convert valid region. - * - * @param asnRegion the asn region - * @param issuingDate the issuing date - * @return the i regional validity - */ - protected IRegionalValidity convertValidRegion(RegionalValidityType asnRegion, Date issuingDate) { - - if (asnRegion == null) return null; - - if (asnRegion.getLines()!=null){ - return convertLine(asnRegion.getLines()); - } - if (asnRegion.getPolygone()!=null){ - return convertPolygone(asnRegion.getPolygone()); - } - if (asnRegion.getTrainLink()!=null){ - return convertTrainLink(asnRegion.getTrainLink(),issuingDate); - } - if (asnRegion.getViaStations()!=null){ - return convertViaStation(asnRegion.getViaStations()); - } - if (asnRegion.getZones()!=null){ - return convertZone(asnRegion.getZones()); - } - return null; - } - - - /** - * Convert parking ground. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i parking ground - */ - protected IParkingGround convertParkingGround(ParkingGroundData asnDocument , Date issuingDate) { - - IParkingGround document = factory.createParkingGround(); - - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - - document.setAccessCode(asnDocument.getAccessCode()); - document.setLocation(asnDocument.getLocation()); - - document.setExtension(convertExtension(asnDocument.getExtension())); - - document.setNumberPlate(asnDocument.getNumberPlate()); - document.setEntryTrack(asnDocument.getEntryTrack()); - - - document.setFromParkingDate(asnDocument.getFromParkingDate(issuingDate)); - document.setToParkingDate(asnDocument.getToParkingDate(issuingDate)); - - document.setParkingGroundId(asnDocument.getParkingGroundId()); - - document.setSpecialInformation(asnDocument.getSpecialInformation()); - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - - document.setStation(UicEncoderUtils.mapToString(asnDocument.getStationNum(),asnDocument.getStationIA5())); - - document.setPrice(asnDocument.getPrice()); - - if (asnDocument.getVatDetails() != null && !asnDocument.getVatDetails().isEmpty()){ - for (VatDetailType vat : asnDocument.getVatDetails()) { - document.addVatDetail(decodeVatDetail(vat)); - } - } - - return document; - } - - /** - * Convert via station. - * - * @param asnDocument the asn via - * @return the i via station - */ - protected IViaStation convertViaStation(ViaStationType asnDocument) { - - if (asnDocument == null) return null; - - IViaStation via = factory.createViaStation(); - - if (asnDocument.getBorder()!=null) { - via.setBorder(asnDocument.getBorder()); - } - - if (asnDocument.getRouteId() != null) { - via.setRouteId(asnDocument.getRouteId().intValue()); - } - - if (asnDocument.getStationCodeTable()!=null){ - via.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - - if (asnDocument.getStationNum() != null) { - via.setStation(asnDocument.getStationNum().toString()); - } else if (asnDocument.getStationIA5() != null) { - via.setStation(asnDocument.getStationIA5()); - } - - if (asnDocument.getCarriersNum()!=null && !asnDocument.getCarriersNum().isEmpty()){ - for(Long carrier :asnDocument.getCarriersNum()){ - via.addCarrier(carrier.toString()); - } - } - if (asnDocument.getCarriersIA5()!=null && !asnDocument.getCarriersIA5().isEmpty()){ - for(String carrier :asnDocument.getCarriersIA5()){ - via.addCarrier(carrier); - } - } - - if (asnDocument.getRoute()!= null && !asnDocument.getRoute().isEmpty()) { - for ( ViaStationType routeVia: asnDocument.getRoute()) { - via.addRouteStation(convertViaStation(routeVia)); - } - } - if (asnDocument.getAlternativeRoutes()!= null && !asnDocument.getAlternativeRoutes().isEmpty()) { - for ( ViaStationType routeVia: asnDocument.getAlternativeRoutes()) { - via.addRouteStation(convertViaStation(routeVia)); - } - } - - - return via; - } - - /** - * Convert train link. - * - * @param asnTrainLink the asn train link - * @param issuingDate the issuing date - * @return the i regional validity - */ - protected IRegionalValidity convertTrainLink(TrainLinkType asnTrainLink, Date issuingDate) { - - ITrainLink trainLink = factory.createTrainLink(); - - trainLink.setTrain(UicEncoderUtils.mapToString(asnTrainLink.getTrainNum(), asnTrainLink.getTrainIA5())); - - trainLink.setFromStation(UicEncoderUtils.mapToString(asnTrainLink.getFromStationNum(),asnTrainLink.getFromStationIA5())); - trainLink.setToStation(UicEncoderUtils.mapToString(asnTrainLink.getToStationNum(),asnTrainLink.getToStationIA5())); - trainLink.setFromStationName(asnTrainLink.getFromStationName()); - trainLink.setToStationName(asnTrainLink.getToStationName()); - - trainLink.setDepartureDateTime(asnTrainLink.getDepartureDate(issuingDate)); - - return trainLink; - } - - /** - * Convert zone. - * - * @param asnDocument the asn zone - * @return the i regional validity - */ - protected IRegionalValidity convertZone(ZoneType asnDocument) { - - if (asnDocument == null) return null; - - IZone zone = factory.createZone(); - - zone.setBinaryZoneId(asnDocument.getBinaryZoneId()); - zone.setCarrier(UicEncoderUtils.mapToString(asnDocument.getCarrierNum(),asnDocument.getCarrierIA5())); - - if (asnDocument.getCity() != null) { - zone.setCity(asnDocument.getCity().intValue()); - } - if (asnDocument.getStationCodeTable()!=null){ - zone.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - zone.setEntryStation(UicEncoderUtils.mapToString(asnDocument.getEntryStationNum(),asnDocument.getEntryStationIA5())); - zone.setTerminatingStation(UicEncoderUtils.mapToString(asnDocument.getTerminatingStationNum(),asnDocument.getTerminatingStationIA5())); - - zone.setNUTScode(asnDocument.getNutsCode()); - - return zone; - } - - /** - * Convert polygone. - * - * @param asnPolygone the asn polygone - * @return the i regional validity - */ - protected IRegionalValidity convertPolygone(PolygoneType asnPolygone) { - - if (asnPolygone == null) return null; - - IPolygone polygone = factory.createPolygone(); - - IGeoCoordinate firstEdge = convertGeoCoordinate(asnPolygone.getFirstEdge()); - - if (firstEdge == null) return null; - - if (asnPolygone.getEdges()!=null && !asnPolygone.getEdges().isEmpty()) { - for (DeltaCoordinates asnEdge :asnPolygone.getEdges()){ - - IGeoCoordinate edge = firstEdge.clone(); - try { - edge.addLongitude(asnEdge.getLongitude().longValue()); - edge.addLatitude(asnEdge.getLatitude().longValue()); - } catch (Exception e) { - - } - polygone.addEdge(edge); - } - } - return polygone; - } - - /** - * Convert line. - * - * @param asnDocument the asn line - * @return the i regional validity - */ - protected IRegionalValidity convertLine(LineType asnDocument) { - - if (asnDocument == null) return null; - - ILine line = factory.createLine(); - - line.setBinaryZoneId(asnDocument.getBinaryZoneId()); - line.setCarrier(UicEncoderUtils.mapToString(asnDocument.getCarrierNum(),asnDocument.getCarrierIA5())); - if (asnDocument.getCity()!=null) { - line.setCity(asnDocument.getCity().intValue()); - } - if (asnDocument.getStationCodeTable()!=null){ - line.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - line.setEntryStation(UicEncoderUtils.mapToString(asnDocument.getEntryStationNum(),asnDocument.getEntryStationIA5())); - line.setTerminatingStation(UicEncoderUtils.mapToString(asnDocument.getTerminatingStationNum(),asnDocument.getTerminatingStationIA5())); - if (asnDocument.getLineId()!=null && !asnDocument.getLineId().isEmpty()){ - for (Long lineId : asnDocument.getLineId()) { - line.addLineId(lineId.intValue()); - } - } - return line; - } - - /** - * Convert tariff. - * - * @param asnTariff the asn tariff - * @return the i tariff - */ - protected ITariff convertTariff(TariffType asnTariff) { - - if (asnTariff== null) return null; - - ITariff tariff = factory.createTariff(); - - if (asnTariff.getAgeAbove() != null) { - tariff.setAgeAbove(asnTariff.getAgeAbove().intValue()); - } - - if (asnTariff.getAgeBelow() != null) { - tariff.setAgeBelow(asnTariff.getAgeBelow().intValue()); - } - - if(asnTariff.getNumberOfPassengers()!=null){ - tariff.setNumberOfPassengers(asnTariff.getNumberOfPassengers().intValue()); - } - - if (asnTariff.getSeriesDataDetails() != null) { - tariff.setSeriesDataDetails(convertSeriesDataDetails(asnTariff.getSeriesDataDetails())); - } - - - if (asnTariff.getPassengerType()!=null) { - tariff.setPassengerType(IPassengerType.valueOf(asnTariff.getPassengerType().name())); - } - - - if(asnTariff.getRestrictedToCountryOfResidence()!=null){ - tariff.setRestrictedToCountryOfResidence(asnTariff.getRestrictedToCountryOfResidence()); - } - if (asnTariff.getRestrictedToRouteSection()!=null){ - tariff.setRestrictedToRouteSection(convertRouteSection(asnTariff.getRestrictedToRouteSection())); - } - - - tariff.setTariffDescription(asnTariff.getTariffDesc()); - tariff.setTariffId(UicEncoderUtils.mapToString(asnTariff.getTariffIdNum(),asnTariff.getTariffIdIA5())); - - if (asnTariff.getTraverlerid()!= null && !asnTariff.getTraverlerid().isEmpty() ) { - for (Long number : asnTariff.getTraverlerid()){ - tariff.addTravelerId(number.intValue()); - } - } - - if (asnTariff.getReductionCard()!=null && !asnTariff.getReductionCard().isEmpty()){ - for(CardReferenceType card : asnTariff.getReductionCard()){ - tariff.addReductionCard(convertCardReference(card)); - } - } - - return tariff; - } - - private ISeriesDataDetails convertSeriesDataDetails(SeriesDetailType asnDetails) { - - if (asnDetails == null) return null; - - ISeriesDataDetails details = factory.createSeriesDataDetails(); - - if (asnDetails.getSeries() != null) { - details.setSeries(asnDetails.getSeries().intValue()); - } - - if (asnDetails.getSupplyingCarrier() != null) { - details.setSupplyingCarrier(asnDetails.getSupplyingCarrier().intValue()); - } - - if (asnDetails.getOfferIdentification() != null) { - details.setOfferIdentification(asnDetails.getOfferIdentification().intValue()); - } - - return details; - } - - - - - - - - /** - * Convert route section. - * - * @param asnDocument the asn document - * @return the i route section - */ - protected IRouteSection convertRouteSection(RouteSectionType asnDocument) { - - if (asnDocument == null) return null; - - IRouteSection document = factory.createRouteSection(); - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - document.setFromStation(UicEncoderUtils.mapToString(asnDocument.getFromStationNum(),asnDocument.getFromStationIA5())); - document.setToStation(UicEncoderUtils.mapToString(asnDocument.getToStationNum(),asnDocument.getToStationIA5())); - document.setFromStationName(asnDocument.getFromStationNameUTF8()); - document.setToStationName(asnDocument.getToStationNameUTF8()); - return document; - } - - /** - * Convert fip ticket. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i fip ticket - */ - protected IFipTicket convertFipTicket(FIPTicketData asnDocument , Date issuingDate) { - - if (asnDocument == null) return null; - - IFipTicket document = factory.createFipTicket(); - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - - - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - if (asnDocument.getActivatedDay() != null && !asnDocument.getActivatedDay().isEmpty()) { - document.getActivatedDays().addAll(asnDocument.getActivatedDays(issuingDate)); - } - - if(asnDocument.getIncludesSupplements()!=null) { - document.setIncludesSupplements(asnDocument.getIncludesSupplements()); - } - if(asnDocument.getNumberOfTravelDays()!=null){ - document.setNumberOfTravelDates(asnDocument.getNumberOfTravelDays().intValue()); - } - - document.setExtension(convertExtension(asnDocument.getExtension())); - - return document; - } - - /** - * Convert pass. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i pass - */ - protected IPass convertPass(PassData asnDocument, Date issuingDate) { - - if (asnDocument == null) return null; - - IPass document = factory.createPass(); - - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidFromUTCoffset(asnDocument.getValidFromUTCOffset()); - - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - document.setValidUntilUTCoffset(asnDocument.getValidUntilUTCOffset()); - - if (asnDocument.getActivatedDay() != null && !asnDocument.getActivatedDay().isEmpty()) { - document.getActivatedDays().addAll(asnDocument.getActivatedDays(issuingDate)); - } - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - if (asnDocument.getNumberOfDaysOfTravel() != null) { - document.setNumberOfDaysOfTravel(asnDocument.getNumberOfDaysOfTravel().intValue()); - } - if (asnDocument.getNumberOfPossibleTrips() != null) { - document.setNumberOfPossibleTrips(asnDocument.getNumberOfPossibleTrips().intValue()); - } - - document.setPassDescription(asnDocument.getPassDescription()); - if(asnDocument.getPassType()!=null){ - document.setPassType(asnDocument.getPassType().intValue()); - } - - - - if (asnDocument.getCountries()!=null && !asnDocument.getCountries().isEmpty()){ - for(Long number :asnDocument.getCountries()){ - document.addCountry(number.intValue()); - } - } - if (asnDocument.getExcludedServiceBrands()!=null && !asnDocument.getExcludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getExcludedServiceBrands()){ - document.addExcludedServiceBrand(number.intValue()); - } - } - - if (asnDocument.getIncludedCarriersNum()!=null && !asnDocument.getIncludedCarriersNum().isEmpty()){ - for(Long carrier :asnDocument.getIncludedCarriersNum()){ - document.addIncludedCarrier(carrier.toString()); - } - } - if (asnDocument.getIncludedCarriersIA5()!=null && !asnDocument.getIncludedCarriersIA5().isEmpty()){ - for(String carrier :asnDocument.getIncludedCarriersIA5()){ - document.addIncludedCarrier(carrier); - } - } - - if (asnDocument.getExcludedCarriersNum()!=null && !asnDocument.getExcludedCarriersNum().isEmpty()){ - for(Long carrier :asnDocument.getExcludedCarriersNum()){ - document.addExcludedCarrier(carrier.toString()); - } - } - if (asnDocument.getExcludedCarriersIA5()!=null && !asnDocument.getExcludedCarriersIA5().isEmpty()){ - for(String carrier :asnDocument.getExcludedCarriersIA5()){ - document.addExcludedCarrier(carrier); - } - } - - - if (asnDocument.getIncludedServiceBrands()!=null && !asnDocument.getIncludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getIncludedServiceBrands()){ - document.addIncludedServiceBrand(number.intValue()); - } - } - - if (asnDocument.getTariffs()!=null && !asnDocument.getTariffs().isEmpty()){ - for(TariffType asnTariff :asnDocument.getTariffs()){ - document.addTariff(convertTariff(asnTariff)); - } - } - - if (asnDocument.getValidRegion()!=null && !asnDocument.getValidRegion().isEmpty()){ - for(RegionalValidityType asnRegion :asnDocument.getValidRegion()){ - document.addValidRegion(convertValidRegion(asnRegion, issuingDate)); - } - } - - - if (asnDocument.getValidityPeriodDetails() != null) { - document.setValidityDetails(convertValidityDetails(asnDocument.getValidityPeriodDetails(), issuingDate)); - } - - document.setPrice(asnDocument.getPrice()); - - if (asnDocument.getVatDetails() != null && !asnDocument.getVatDetails().isEmpty()){ - for (VatDetailType vat : asnDocument.getVatDetails()) { - document.addVatDetail(decodeVatDetail(vat)); - } - } - - - return document; - } - - private IValidityDetails convertValidityDetails(ValidityPeriodDetailType asnDetails, Date issuingDate) { - - if (asnDetails == null) return null; - - IValidityDetails details = factory.createValidityDetails(); - - if (asnDetails.getExcludedTimeRange()!= null && !asnDetails.getExcludedTimeRange().isEmpty()) { - - ITimeRange range = factory.createTimeRange(); - - for (TimeRangeType asnRange : asnDetails.getExcludedTimeRange() ) { - - if (asnRange.getFromTime() != null) { - range.setFromTime(asnRange.getFromTime().intValue()); - } - if (asnRange.getUntilTime() != null) { - range.setUntilTime(asnRange.getUntilTime().intValue()); - } - - details.addTimeRanges(range); - } - - - - } - - if (asnDetails.getValidityPeriod()!= null && !asnDetails.getValidityPeriod().isEmpty()) { - - IValidityRange range = factory.createValidityRange(); - - for (ValidityPeriodType asnRange : asnDetails.getValidityPeriod() ) { - - range.setFromDate(asnRange.getValidFromDate(issuingDate)); - range.setUntilDate(asnRange.getValidUntilDate(issuingDate)); - - range.setValidFromUTCoffset(asnRange.getValidFromUTCOffset()); - if (asnRange.getValidUntilUTCOffset() != null) { - range.setValidUntilUTCoffset(asnRange.getValidUntilUTCOffset()); - } else { - range.setValidUntilUTCoffset(asnRange.getValidFromUTCOffset()); - } - - details.addValidityRanges(range); - } - - } - - return details; - } - - - - - - - - /** - * Convert voucher. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i voucher - */ - protected IVoucher convertVoucher(VoucherData asnDocument , Date issuingDate) { - - if (asnDocument == null) return null; - - IVoucher document = factory.createVoucher(); - - document.setValidFrom(asnDocument.getValidFrom()); - - document.setValidUntil(asnDocument.getValidUntil()); - - document.setInfoText(asnDocument.getInfoText()); - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - if (asnDocument.getValue()!=null) { - document.setAmount(asnDocument.getValue().intValue()); - } - - if (asnDocument.getType()!= null) { - document.setType(asnDocument.getType().intValue()); - } - - document.setExtension(convertExtension(asnDocument.getExtension())); - - return document; - } - - /** - * Convert customer card. - * - * @param asnDocument the asn card - * @param issuingDate the issuing date - * @return the i customer card - */ - protected ICustomerCard convertCustomerCard(CustomerCardData asnDocument, Date issuingDate ) { - - if (asnDocument == null) return null; - - ICustomerCard card = factory.createCustomerCard(); - - card.setCardId(UicEncoderUtils.mapToString(asnDocument.getCardIdNum(), asnDocument.getCardIdIA5())); - if (asnDocument.getCardType()!= null) { - card.setCardType(asnDocument.getCardType().intValue()); - } - card.setCardTypeDescr(asnDocument.getCardTypeDescr()); - if(asnDocument.getClassCode()!=null){ - card.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - if(asnDocument.getCustomer()!=null) { - card.setCustomer(convertTraveler(asnDocument.getCustomer())); - } - if (asnDocument.getCustomerStatus()!=null) { - card.setCustomerStatus(asnDocument.getCustomerStatus().intValue()); - } - - card.setCustomerStatusDescr(asnDocument.getCustomerStatusDescr()); - - card.setValidFrom(asnDocument.getValidFromDate()); - - card.setValidUntil(asnDocument.getValidUntilDate()); - - - if (asnDocument.getIncludedServices() != null && !asnDocument.getIncludedServices().isEmpty()){ - for (Long service: asnDocument.getIncludedServices()){ - card.addIncludedService(new Integer(service.intValue())); - } - } - return card; - } - - - /** - * Convert document extension. - * - * @param extension the extension - * @return the i document extension - */ - protected IDocumentExtension convertDocumentExtension(ExtensionData asnExtension) { - - if (asnExtension == null) return null; - - IDocumentExtension documentExtension = factory.createDocumentExtension(); - documentExtension.setId(asnExtension.getExtensionId()); - documentExtension.setBinarydata(asnExtension.getExtensionData()); - return documentExtension; - } - - - /** - * Populate traveler details. - * - * @param asnTravelerDetails the asn traveler details - * @param travelerDetails the traveler details - */ - protected void populateTravelerDetails(TravelerData asnTravelerDetails,ITravelerDetail travelerDetails) { - - if (asnTravelerDetails == null) return; - - travelerDetails.setGroupName(asnTravelerDetails.getGroupName()); - - travelerDetails.setPreferredLanguage(asnTravelerDetails.getPreferedLanguage()); - - if (asnTravelerDetails.getTraveler() != null && !asnTravelerDetails.getTraveler().isEmpty() ) { - for ( TravelerType asnTraveler : asnTravelerDetails.getTraveler() ){ - travelerDetails.addTraveler(convertTraveler(asnTraveler)); - } - } - } - - /** - * Convert traveler. - * - * @param asnTraveler the asn traveler - * @return the i traveler - */ - protected ITraveler convertTraveler(TravelerType asnTraveler) { - - if (asnTraveler == null) return null; - - ITraveler traveler = factory.createTraveler(); - - if (asnTraveler.getCountryOfResidence() != null){ - traveler.setCountryOfResidence(asnTraveler.getCountryOfResidence().intValue()); - } - if (asnTraveler.getCountryOfPassport() != null) { - traveler.setPassportCountry(asnTraveler.getCountryOfPassport().intValue()); - } - - if (asnTraveler.getCountryOfIdCard() != null) { - traveler.setIDCardCountry(asnTraveler.getCountryOfIdCard().intValue()); - } - - - traveler.setCustomerId(UicEncoderUtils.mapToString(asnTraveler.getCustomerIdNum(),asnTraveler.getCustomerIdIA5())); - - traveler.setDateOfBirth(asnTraveler.getDateOfBirth()); - - traveler.setFirstName(asnTraveler.getFirstName()); - if (asnTraveler.getGender()!= null) { - traveler.setGender(IGenderType.valueOf(asnTraveler.getGender().name())); - } - traveler.setIdCard(asnTraveler.getIdCard()); - traveler.setLastName(asnTraveler.getLastName()); - - if (asnTraveler.getPassengerType()!= null) { - traveler.setPassengerType(IPassengerType.valueOf(asnTraveler.getPassengerType().name())); - } - if (asnTraveler.getPassengerWithReducedMobility()!= null) { - traveler.setPassengerWithReducedMobility(asnTraveler.getPassengerWithReducedMobility()); - } - - traveler.setPassportId(asnTraveler.getPassportId()); - traveler.setSecondName(asnTraveler.getSecondName()); - - if (asnTraveler.getTicketHolder() != null) { - traveler.setTicketHolder(asnTraveler.getTicketHolder()); - } - - if (asnTraveler.getStatus()!= null && !asnTraveler.getStatus().isEmpty()) { - - for (CustomerStatusType asnStatus : asnTraveler.getStatus()){ - - traveler.addStatusDescription( mapToStatusDescription(asnStatus) ); - - } - - } - - traveler.setTitle(asnTraveler.getTitle()); - - return traveler; - } - - /** - * Map to status description. - * - * @param asnStatus the asn status - * @return the i customer status description - */ - private ICustomerStatusDescription mapToStatusDescription( CustomerStatusType asnStatus) { - - if (asnStatus == null) return null; - - ICustomerStatusDescription status = factory.createCustomerStatusDescription(); - - status.setDescription(asnStatus.getCustomerStatusDescr()); - - if (asnStatus.getCustomerStatus()!=null) { - status.setStatus(asnStatus.getCustomerStatus().intValue()); - } - - status.setStatusProvider(UicEncoderUtils.mapToString(asnStatus.getStatusProviderNum(), asnStatus.getStatusProviderIA5())); - - return status; - } - - - - - - - - /** - * Populate control details. - * - * @param asnControlDetails the asn control details - * @param controlDetails the control details - */ - protected void populateControlDetails(ControlData asnControlDetails, IControlDetail controlDetails) { - - if (asnControlDetails == null || controlDetails==null ) return; - - if (asnControlDetails.getAgeCheckRequired()!= null) { - controlDetails.setAgeCheckRequired(asnControlDetails.getAgeCheckRequired()); - } - - controlDetails.setExtension(convertExtension(asnControlDetails.getExtension())); - - if (asnControlDetails.getIdentificationByIdCard()!=null){ - controlDetails.setIdentificationByIdCard(asnControlDetails.getIdentificationByIdCard()); - } - - if (asnControlDetails.getIdentificationByPassportId()!= null){ - controlDetails.setIdentificationByPassportId(asnControlDetails.getIdentificationByPassportId()); - } - - if(asnControlDetails.getIdentificationItem()!=null){ - controlDetails.setIdentificationItem(asnControlDetails.getIdentificationItem().intValue()); - } - - controlDetails.setInfoText(asnControlDetails.getInfoText()); - - if (asnControlDetails.getOnlineValidationRequired()!=null){ - controlDetails.setOnlineValidationRequired(asnControlDetails.getOnlineValidationRequired()); - } - - if (asnControlDetails.getRandomDetailedValidationRequired()!= null){ - controlDetails.setRandomDetailedValidationRequired(asnControlDetails.getRandomDetailedValidationRequired().intValue()); - } - - if (asnControlDetails.getReductionCardCheckRequired() != null){ - controlDetails.setReductionCardCheckRequired(asnControlDetails.getReductionCardCheckRequired()); - } - - if(asnControlDetails.getIdentificationByCardReference()!=null && !asnControlDetails.getIdentificationByCardReference().isEmpty()) { - for (CardReferenceType asnCardReference : asnControlDetails.getIdentificationByCardReference()){ - controlDetails.addIdentificationByCardReference(convertCardReference(asnCardReference)); - } - } - - if (asnControlDetails.getIncludedTickets()!=null && !asnControlDetails.getIncludedTickets().isEmpty()) { - for (TicketLinkType asnTicketLink : asnControlDetails.getIncludedTickets()) { - controlDetails.addLinkedTicket(convertTicketLink(asnTicketLink)); - } - } - - - } - - - - - - /** - * Populate issuing detail. - * - * @param asnIssuingDetail the asn issuing detail - * @param issuingDetail the issuing detail - */ - protected void populateIssuingDetail(IssuingData asnIssuingDetail,IIssuingDetail issuingDetail){ - - if (asnIssuingDetail== null || issuingDetail == null) return; - - if (asnIssuingDetail.getActivated() != null) { - issuingDetail.setActivated(asnIssuingDetail.getActivated()); - } - - if (asnIssuingDetail.getSpecimen() != null) { - issuingDetail.setSpecimen(asnIssuingDetail.getSpecimen()); - } else { - issuingDetail.setSpecimen(false); - } - - - if (asnIssuingDetail.getSecurePaperTicket() != null) { - issuingDetail.setSecurePaperTicket(asnIssuingDetail.getSecurePaperTicket()); - } else { - issuingDetail.setSecurePaperTicket(false); - } - - issuingDetail.setExtension(convertExtension(asnIssuingDetail.getExtension())); - - if (asnIssuingDetail.getIssuedOnLine()!= null) { - issuingDetail.setIssuedOnLine(asnIssuingDetail.getIssuedOnLine().intValue()); - } - - if (asnIssuingDetail.getIssuedOnTrainIA5()!= null) { - issuingDetail.setIssuedOnTrain(asnIssuingDetail.getIssuedOnTrainIA5()); - } - if (asnIssuingDetail.getIssuedOnTrainNum()!= null) { - issuingDetail.setIssuedOnTrain(asnIssuingDetail.getIssuedOnTrainNum().toString()); - } - - if (asnIssuingDetail.getIssuerNum() != null || asnIssuingDetail.getIssuerIA5() != null) { - issuingDetail.setIssuer(UicEncoderUtils.mapToString(asnIssuingDetail.getIssuerNum(), asnIssuingDetail.getIssuerIA5())); - } - - issuingDetail.setIssuerName(asnIssuingDetail.getIssuerName()); - - issuingDetail.setIssuerPNR(asnIssuingDetail.getIssuerPNR()); - - issuingDetail.setSecurityProvider(UicEncoderUtils.mapToString(asnIssuingDetail.getSecurityProviderNum(),asnIssuingDetail.getSecurityProviderIA5())); - - - issuingDetail.setIssuingDate(asnIssuingDetail.getIssuingDate()); - - - if (asnIssuingDetail.getPointOfSale() != null) { - issuingDetail.setPointOfSale(convertGeoCoordinate(asnIssuingDetail.getPointOfSale())); - } - - } - - - - /** - * Convert geo coordinate. - * - * @param asnCoordinate the asn coordinate - * @return the i geo coordinate - */ - protected IGeoCoordinate convertGeoCoordinate(GeoCoordinateType asnCoordinate) { - - if (asnCoordinate == null) return null; - - IGeoCoordinate coordinate = factory.createGeoCoordinate(); - - if (asnCoordinate.getCoordinateSystem() != null) { - coordinate.setSystem(IGeoCoordinateSystemType.valueOf(asnCoordinate.getCoordinateSystem().name())); - } - - if (asnCoordinate.getAccuracy() != null) { - coordinate.setAccuracy(IGeoUnitType.valueOf(asnCoordinate.getAccuracy().name())); - } - - if (asnCoordinate.getGeoUnit() != null) { - coordinate.setUnit(IGeoUnitType.valueOf(asnCoordinate.getGeoUnit().name())); - } - - if (asnCoordinate.getHemisphereLatitude() != null) { - coordinate.setHemisphereLatitude(IHemisphereLatitudeType.valueOf(asnCoordinate.getHemisphereLatitude().name())); - } - - if (asnCoordinate.getHemisphereLongitude() != null) { - coordinate.setHemisphereLongitude(IHemisphereLongitudeType.valueOf(asnCoordinate.getHemisphereLongitude().name())); - } - - coordinate.setLongitude (asnCoordinate.getLongitude()); - coordinate.setLatitude (asnCoordinate.getLatitude()); - - - return coordinate; - } - - - /** - * Convert extension. - * - * @param asnExtension the asn extension - * @return the i extension - */ - protected IExtension convertExtension(ExtensionData asnExtension) { - if (asnExtension == null) return null; - IExtension extension = factory.createExtension(); - extension.setId(asnExtension.getExtensionId()); - extension.setBinarydata(asnExtension.getExtensionData()); - return extension; - } - - - /** - * Convert ticket link. - * - * @param asnTicketLink the asn ticket link - * @return the i ticket link - */ - protected ITicketLink convertTicketLink(TicketLinkType asnTicketLink) { - - if (asnTicketLink == null) return null; - - ITicketLink ticketLink = factory.createTicketLink(); - ticketLink.setIssuer(asnTicketLink.getIssuerName()); - ticketLink.setIssuerPNR(asnTicketLink.getIssuerPNR()); - ticketLink.setProductOwner(UicEncoderUtils.mapToString(asnTicketLink.getProductOwnerNum(),asnTicketLink.getProductOwnerIA5())); - ticketLink.setReference(UicEncoderUtils.mapToString(asnTicketLink.getReferenceNum(),asnTicketLink.getReferenceIA5())); - if(asnTicketLink.getTicketType()!=null) { - ticketLink.setTicketType(ITicketType.valueOf(asnTicketLink.getTicketType().name())); - } - if(asnTicketLink.getLinkMode()!=null) { - ticketLink.setLinkMode(ILinkMode.valueOf(asnTicketLink.getLinkMode().name())); - } - return ticketLink; - } - - /** - * Convert card reference. - * - * @param asnCardReference the asn card reference - * @return the card reference - */ - protected ICardReference convertCardReference(CardReferenceType asnCardReference) { - - if (asnCardReference == null) return null; - - ICardReference cardReference = factory.createCardReference(); - cardReference.setCardId(UicEncoderUtils.mapToString(asnCardReference.getCardIdNum(),asnCardReference.getCardIdIA5())); - cardReference.setCardIssuer(UicEncoderUtils.mapToString(asnCardReference.getCardIssuerNum(),asnCardReference.getCardIssuerIA5())); - cardReference.setCardName(asnCardReference.getCardName()); - - if(asnCardReference.getCardType()!=null) { - cardReference.setCardType(asnCardReference.getCardType().intValue()); - } - - - cardReference.setLeadingCardId(UicEncoderUtils.mapToString(asnCardReference.getLeadingCardIdNum(),asnCardReference.getLeadingCardIdIA5())); - cardReference.setTrailingCardId(UicEncoderUtils.mapToString(asnCardReference.getTrailingCardIdNum(),asnCardReference.getTrailingCardIdIA5())); - - return cardReference; - } - -} diff --git a/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoderV2.java b/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoderV2.java deleted file mode 100644 index b8ee363..0000000 --- a/src/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoderV2.java +++ /dev/null @@ -1,2250 +0,0 @@ -/* - * - */ -package org.uic.barcode.ticket.api.utils; - -import java.io.IOException; -import java.util.Date; -import java.util.List; - -import org.uic.barcode.ticket.api.asn.omv2.BerthDetailData; -import org.uic.barcode.ticket.api.asn.omv2.CarCarriageReservationData; -import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.CompartmentDetailsType; -import org.uic.barcode.ticket.api.asn.omv2.ControlData; -import org.uic.barcode.ticket.api.asn.omv2.CountermarkData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerCardData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.DelayConfirmation; -import org.uic.barcode.ticket.api.asn.omv2.DeltaCoordinates; -import org.uic.barcode.ticket.api.asn.omv2.DocumentData; -import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.FIPTicketData; -import org.uic.barcode.ticket.api.asn.omv2.GeoCoordinateType; -import org.uic.barcode.ticket.api.asn.omv2.IncludedOpenTicketType; -import org.uic.barcode.ticket.api.asn.omv2.IssuingData; -import org.uic.barcode.ticket.api.asn.omv2.LineType; -import org.uic.barcode.ticket.api.asn.omv2.LuggageRestrictionType; -import org.uic.barcode.ticket.api.asn.omv2.OpenTicketData; -import org.uic.barcode.ticket.api.asn.omv2.ParkingGroundData; -import org.uic.barcode.ticket.api.asn.omv2.PassData; -import org.uic.barcode.ticket.api.asn.omv2.PlacesType; -import org.uic.barcode.ticket.api.asn.omv2.PolygoneType; -import org.uic.barcode.ticket.api.asn.omv2.RegionalValidityType; -import org.uic.barcode.ticket.api.asn.omv2.RegisteredLuggageType; -import org.uic.barcode.ticket.api.asn.omv2.ReservationData; -import org.uic.barcode.ticket.api.asn.omv2.ReturnRouteDescriptionType; -import org.uic.barcode.ticket.api.asn.omv2.RouteSectionType; -import org.uic.barcode.ticket.api.asn.omv2.SeriesDetailType; -import org.uic.barcode.ticket.api.asn.omv2.StationPassageData; -import org.uic.barcode.ticket.api.asn.omv2.TariffType; -import org.uic.barcode.ticket.api.asn.omv2.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv2.TimeRangeType; -import org.uic.barcode.ticket.api.asn.omv2.TokenType; -import org.uic.barcode.ticket.api.asn.omv2.TrainLinkType; -import org.uic.barcode.ticket.api.asn.omv2.TravelerData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerType; -import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; -import org.uic.barcode.ticket.api.asn.omv2.ValidityPeriodDetailType; -import org.uic.barcode.ticket.api.asn.omv2.ValidityPeriodType; -import org.uic.barcode.ticket.api.asn.omv2.VatDetailType; -import org.uic.barcode.ticket.api.asn.omv2.ViaStationType; -import org.uic.barcode.ticket.api.asn.omv2.VoucherData; -import org.uic.barcode.ticket.api.asn.omv2.ZoneType; -import org.uic.barcode.ticket.api.impl.SimpleUicTicketObjectFactory; -import org.uic.barcode.ticket.api.spec.IBerth; -import org.uic.barcode.ticket.api.spec.IBerthTypeType; -import org.uic.barcode.ticket.api.spec.ICarCarriageReservation; -import org.uic.barcode.ticket.api.spec.ICardReference; -import org.uic.barcode.ticket.api.spec.ICompartmentDetails; -import org.uic.barcode.ticket.api.spec.ICompartmentGenderType; -import org.uic.barcode.ticket.api.spec.ICompartmentPositionType; -import org.uic.barcode.ticket.api.spec.IControlDetail; -import org.uic.barcode.ticket.api.spec.ICounterMark; -import org.uic.barcode.ticket.api.spec.ICustomerCard; -import org.uic.barcode.ticket.api.spec.ICustomerStatusDescription; -import org.uic.barcode.ticket.api.spec.IDelayConfirmation; -import org.uic.barcode.ticket.api.spec.IDocumentExtension; -import org.uic.barcode.ticket.api.spec.IExtension; -import org.uic.barcode.ticket.api.spec.IFipTicket; -import org.uic.barcode.ticket.api.spec.IGenderType; -import org.uic.barcode.ticket.api.spec.IGeoCoordinate; -import org.uic.barcode.ticket.api.spec.IGeoCoordinateSystemType; -import org.uic.barcode.ticket.api.spec.IGeoUnitType; -import org.uic.barcode.ticket.api.spec.IHemisphereLatitudeType; -import org.uic.barcode.ticket.api.spec.IHemisphereLongitudeType; -import org.uic.barcode.ticket.api.spec.IIncludedOpenTicket; -import org.uic.barcode.ticket.api.spec.IIssuingDetail; -import org.uic.barcode.ticket.api.spec.ILine; -import org.uic.barcode.ticket.api.spec.ILinkMode; -import org.uic.barcode.ticket.api.spec.ILoadingDeckType; -import org.uic.barcode.ticket.api.spec.ILuggageRestriction; -import org.uic.barcode.ticket.api.spec.IOpenTicket; -import org.uic.barcode.ticket.api.spec.IParkingGround; -import org.uic.barcode.ticket.api.spec.IPass; -import org.uic.barcode.ticket.api.spec.IPassengerType; -import org.uic.barcode.ticket.api.spec.IPlaces; -import org.uic.barcode.ticket.api.spec.IPolygone; -import org.uic.barcode.ticket.api.spec.IPriceTypeType; -import org.uic.barcode.ticket.api.spec.IRegionalValidity; -import org.uic.barcode.ticket.api.spec.IRegisteredLuggage; -import org.uic.barcode.ticket.api.spec.IReservation; -import org.uic.barcode.ticket.api.spec.IReturnRouteDescription; -import org.uic.barcode.ticket.api.spec.IRoofRackType; -import org.uic.barcode.ticket.api.spec.IRouteSection; -import org.uic.barcode.ticket.api.spec.ISeriesDataDetails; -import org.uic.barcode.ticket.api.spec.IServiceBrand; -import org.uic.barcode.ticket.api.spec.IStationCodeTable; -import org.uic.barcode.ticket.api.spec.IStationPassage; -import org.uic.barcode.ticket.api.spec.ITariff; -import org.uic.barcode.ticket.api.spec.ITicketLink; -import org.uic.barcode.ticket.api.spec.ITicketType; -import org.uic.barcode.ticket.api.spec.ITimeRange; -import org.uic.barcode.ticket.api.spec.IToken; -import org.uic.barcode.ticket.api.spec.ITrainLink; -import org.uic.barcode.ticket.api.spec.ITravelClassType; -import org.uic.barcode.ticket.api.spec.ITraveler; -import org.uic.barcode.ticket.api.spec.ITravelerDetail; -import org.uic.barcode.ticket.api.spec.IUicRailTicket; -import org.uic.barcode.ticket.api.spec.IUicTicketObjectFactory; -import org.uic.barcode.ticket.api.spec.IValidityDetails; -import org.uic.barcode.ticket.api.spec.IValidityRange; -import org.uic.barcode.ticket.api.spec.IVatDetail; -import org.uic.barcode.ticket.api.spec.IViaStation; -import org.uic.barcode.ticket.api.spec.IVoucher; -import org.uic.barcode.ticket.api.spec.IZone; - - -/** - * The Class OpenAsn2ApiDecoder. - */ -public class OpenAsn2ApiDecoderV2 { - - IUicTicketObjectFactory factory = SimpleUicTicketObjectFactory.getInstance(); - - /** - * Decode from asn.1 unaligned PER encoded data. - * - * @param asnUicRailTicketData the asn uic rail ticket data - * @return the decoded uic rail ticket - * @throws IOException Signals that an I/O exception has occurred. - */ - public IUicRailTicket decodeFromAsn (UicRailTicketData asnUicRailTicketData) throws IOException{ - - IUicRailTicket uicRailTicket = factory.createUicRailTicket(); - - populateFromAsn1Model(uicRailTicket, asnUicRailTicketData); - - return uicRailTicket; - - } - - /** - * Decode from asn.1 unaligned PER encoded data. - * - * @param data byte array of the asn.1 encoded FCB data - * @return the decoded uic rail ticket - * @throws IOException Signals that an I/O exception has occurred. - */ - public IUicRailTicket decodeFromAsn (byte[] data) throws IOException{ - - UicRailTicketData asnUicRailTicketData = UicRailTicketData.decode(data); - - IUicRailTicket uicRailTicket = factory.createUicRailTicket(); - - populateFromAsn1Model(uicRailTicket, asnUicRailTicketData); - - return uicRailTicket; - - } - - - - - - - - /** - * Populate from asn1 model. - * - * @param uicRailTicket the uic rail ticket - * @param asnUicRailTicketData the asn uic rail ticket data - */ - protected void populateFromAsn1Model(IUicRailTicket uicRailTicket, UicRailTicketData asnUicRailTicketData) { - - if (asnUicRailTicketData.getExtension()!= null && !asnUicRailTicketData.getExtension().isEmpty()) { - for (ExtensionData asnExtension : asnUicRailTicketData.getExtension()){ - uicRailTicket.addExtension(convertExtension(asnExtension)); - } - } - - if (asnUicRailTicketData.getIssuingDetail() != null) { - populateIssuingDetail(asnUicRailTicketData.getIssuingDetail(), uicRailTicket.getIssuerDetails()); - } - - if (asnUicRailTicketData.getControlDetail() != null) { - populateControlDetails(asnUicRailTicketData.getControlDetail(),uicRailTicket.getControlDetails()); - } - - if (asnUicRailTicketData.getTravelerDetail() != null) { - populateTravelerDetails(asnUicRailTicketData.getTravelerDetail(),uicRailTicket.getTravelerDetails()); - } - - if (asnUicRailTicketData.getTransportDocument() != null && !asnUicRailTicketData.getTransportDocument().isEmpty()) { - - // date is already converted to local time, use UTC for internal calculations - Date localIssuingDate = uicRailTicket.getIssuerDetails().getIssuingDate(); - Date issuingDate = DateTimeUtils.dateToUTC(localIssuingDate); - - populateTravelDocuments(asnUicRailTicketData.getTransportDocument(),uicRailTicket, issuingDate); - } - - - } - - - - - - - /** - * Populate travel documents. - * - * @param asnTransportDocuments the asn transport documents - * @param uicRailTicket the uic rail ticket - * @param issuingDate the issuing date - */ - protected void populateTravelDocuments(List asnTransportDocuments,IUicRailTicket uicRailTicket, Date issuingDate) { - - for ( DocumentData asnDocument : asnTransportDocuments){ - - if (asnDocument.getTicket() == null) { - break; - } - - if (asnDocument.getTicket().getExtension() != null) { - IDocumentExtension ticket = convertDocumentExtension(asnDocument.getTicket().getExtension()); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addDocumentExtension(ticket); - } - - if (asnDocument.getTicket().getCarCarriageReservation() != null) { - ICarCarriageReservation ticket = convertCarCarriage(asnDocument.getTicket().getCarCarriageReservation(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addCarCarriageReservation(ticket); - } - - if (asnDocument.getTicket().getCounterMark() != null) { - ICounterMark ticket = convertCountermark(asnDocument.getTicket().getCounterMark(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addCounterMark(ticket); - } - - if (asnDocument.getTicket().getCustomerCard()!= null) { - ICustomerCard ticket = convertCustomerCard(asnDocument.getTicket().getCustomerCard(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addCustomerCard(ticket); - } - - if (asnDocument.getTicket().getFipTicket()!= null) { - IFipTicket ticket = convertFipTicket(asnDocument.getTicket().getFipTicket(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addFipTicket(ticket); - } - - if (asnDocument.getTicket().getOpenTicket()!= null) { - IOpenTicket ticket = convertOpenTicket(asnDocument.getTicket().getOpenTicket(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addOpenTicket(ticket); - } - - - if (asnDocument.getTicket().getParkingGround()!= null) { - IParkingGround ticket = convertParkingGround(asnDocument.getTicket().getParkingGround(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addParkingGround(ticket); - } - - if (asnDocument.getTicket().getPass() != null) { - IPass ticket = convertPass(asnDocument.getTicket().getPass(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addPass(ticket); - } - - if (asnDocument.getTicket().getStationPassage() != null) { - IStationPassage ticket = convertStationPassage(asnDocument.getTicket().getStationPassage(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addStationPassage(ticket); - } - - if (asnDocument.getTicket().getReservation() != null) { - IReservation ticket = convertReservation(asnDocument.getTicket().getReservation(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addReservation(ticket); - } - - if (asnDocument.getTicket().getVoucher()!= null) { - IVoucher ticket = convertVoucher(asnDocument.getTicket().getVoucher(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addVoucher(ticket); - } - - if (asnDocument.getTicket().getDelayConfirmation()!= null) { - IDelayConfirmation ticket = convertDelayConfirmation(asnDocument.getTicket().getDelayConfirmation(),issuingDate); - if (asnDocument.getToken() != null) { - IToken token = convertToken(asnDocument.getToken()); - ticket.setToken(token); - } - uicRailTicket.addDelayConfirmation(ticket); - } - } - } - - - - - - - - - - - private IToken convertToken(TokenType asnToken) { - - if (asnToken == null) return null; - - IToken token = factory.createToken(); - token.setToken(asnToken.getToken()); - token.setTokenProvider(UicEncoderUtils.mapToString(asnToken.getTokenProviderNum(), asnToken.getTokenProviderIA5())); - token.setTokenSpecification(asnToken.getTokenSpecification()); - return token; - } - - - - private IDelayConfirmation convertDelayConfirmation(DelayConfirmation asnDocument, Date issuingDate) { - - IDelayConfirmation document = factory.createDelayConfirmation(); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum().longValue(),asnDocument.getReferenceIA5())); - - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().toString())); - } - document.setStation(UicEncoderUtils.mapToString(asnDocument.getStationNum(),asnDocument.getStationIA5())); - - document.setStationName(asnDocument.getStationNameUTF8()); - - document.setArrivalDate(asnDocument.getPlannedArrivalDate()); - document.setArrivalUTCoffset(asnDocument.getDepartureUTCOffset()); - - if (asnDocument.getConfirmationType() != null) { - document.setConfirmationType(asnDocument.getConfirmationType().ordinal()); - } - - if (asnDocument.getDelay() != null) { - document.setDelay(asnDocument.getDelay().intValue()); - } - - if (asnDocument.getTrainCancelled() != null) { - document.setTrainCancelled(asnDocument.getTrainCancelled()); - } else { - document.setTrainCancelled(false); - } - - if (asnDocument.getAffectedTickets() !=null && !asnDocument.getAffectedTickets().isEmpty()) { - for (TicketLinkType asnTicketLink : asnDocument.getAffectedTickets()) { - document.addLinkedTicket(convertTicketLink(asnTicketLink)); - } - } - - return document; - } - - - - - - - /** - * Convert reservation. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i reservation - */ - protected IReservation convertReservation(ReservationData asnDocument, Date issuingDate) { - - IReservation document = factory.createReservation(); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - document.setFromStation(UicEncoderUtils.mapToString(asnDocument.getFromStationNum(),asnDocument.getFromStationIA5())); - document.setToStation(UicEncoderUtils.mapToString(asnDocument.getToStationNum(),asnDocument.getToStationIA5())); - document.setFromStationName(asnDocument.getFromStationNameUTF8()); - document.setToStationName(asnDocument.getToStationNameUTF8()); - - document.setDepartureDate(asnDocument.getDepartureDate(issuingDate)); - document.setArrivalDate(asnDocument.getArrivalDate(issuingDate)); - - document.setDepartureUTCoffset(asnDocument.getDepartureUTCOffset()); - if (asnDocument.getArrivalUTCOffset() != null) { - document.setArrivalUTCoffset(asnDocument.getArrivalUTCOffset()); - } else { - document.setArrivalUTCoffset(asnDocument.getDepartureUTCOffset()); - } - - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - - document.setCompartmentDetails(convertCompartmentDetails(asnDocument.getCompartmentDetails())); - - document.setLuggageRestriction(convertLuggageRestriction(asnDocument.getLuggage())); - - if (asnDocument.getNumberOfOverbooked() != null) { - document.setNumberOfOverbooked(asnDocument.getNumberOfOverbooked().intValue()); - } - - if (asnDocument.getNumberOfSupplements() != null) { - document.setNumberOfSupplements(asnDocument.getNumberOfSupplements().intValue()); - } - - if (asnDocument.getPlaces()!=null) { - document.setPlaces(convertPlaces(asnDocument.getPlaces())); - } - - if (asnDocument.getBicyclePlaces()!=null) { - document.setBicyclePlaces(convertPlaces(asnDocument.getBicyclePlaces())); - } - - document.setPriceType(IPriceTypeType.valueOf(asnDocument.getPriceType().name())); - - IServiceBrand serviceBrand = factory.createServiceBrand(); - - if (asnDocument.getServiceBrand()!=null){ - serviceBrand.setServiceBrand(asnDocument.getServiceBrand().intValue()); - } - serviceBrand.setServiceBrandAbbreviation(asnDocument.getServiceBrandAbrUTF8()); - serviceBrand.setServiceBrandDescription(asnDocument.getServiceBrandNameUTF8()); - - document.setServiceBrand(serviceBrand); - - if (asnDocument.getServiceLevel()!=null && asnDocument.getServiceLevel().length() != 0) { - document.setServiceLevel(asnDocument.getServiceLevel()); - } - - document.setTrain(UicEncoderUtils.mapToString(asnDocument.getTrainNum(), asnDocument.getTrainIA5())); - - if (asnDocument.getTypeOfSupplement()!=null) { - document.setTypeOfSupplement(asnDocument.getTypeOfSupplement().intValue()); - } - - if (asnDocument.getBerth()!=null && !asnDocument.getBerth().isEmpty()){ - for (BerthDetailData asnBerth : asnDocument.getBerth()){ - document.addBerth(convertBerth(asnBerth)); - } - } - - if (asnDocument.getCarrierNum()!=null && !asnDocument.getCarrierNum().isEmpty()){ - for(Long carrier :asnDocument.getCarrierNum()){ - document.addCarrier(carrier.toString()); - } - } - if (asnDocument.getCarrierIA5()!=null && !asnDocument.getCarrierIA5().isEmpty()){ - for(String carrier :asnDocument.getCarrierIA5()){ - document.addCarrier(carrier); - } - } - - if (asnDocument.getTariff()!=null && !asnDocument.getTariff().isEmpty()){ - for (TariffType asnTariff : asnDocument.getTariff()) { - document.addTariff(convertTariff(asnTariff)); - } - } - - document.setPrice(asnDocument.getPrice()); - - if (asnDocument.getVatDetails() != null && !asnDocument.getVatDetails().isEmpty()){ - for (VatDetailType vat : asnDocument.getVatDetails()) { - document.addVatDetail(decodeVatDetail(vat)); - } - } - - return document; - } - - - - - - - - - - /** - * Convert car carriage. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i car carriage reservation - */ - protected ICarCarriageReservation convertCarCarriage(CarCarriageReservationData asnDocument , Date issuingDate) { - - ICarCarriageReservation document = factory.createCarCarriageReservation(); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - document.setFromStation(UicEncoderUtils.mapToString(asnDocument.getFromStationNum(),asnDocument.getFromStationIA5())); - document.setToStation(UicEncoderUtils.mapToString(asnDocument.getToStationNum(),asnDocument.getToStationIA5())); - document.setFromStationName(asnDocument.getFromStationNameUTF8()); - document.setToStationName(asnDocument.getToStationNameUTF8()); - - document.setBeginLoading(asnDocument.getBeginLoadingDate(issuingDate)); - document.setEndLoading(asnDocument.getEndLoadingDate(issuingDate)); - - document.setLoadingTimeUTCoffset(asnDocument.getLoadingUTCOffset()); - - - if(asnDocument.getAttachedBicycles()!=null){ - document.setAttachedBicycles(asnDocument.getAttachedBicycles().intValue()); - } - - if (asnDocument.getAttachedBoats()!=null) { - document.setAttachedBoats(asnDocument.getAttachedBoats().intValue()); - } - - if(asnDocument.getAttachedSurfboards()!=null) { - document.setAttachedSurfboards(asnDocument.getAttachedSurfboards().intValue()); - } - - if (asnDocument.getBoatCategory()!=null){ - document.setBoatCategory(asnDocument.getBoatCategory().intValue()); - } - - if(asnDocument.getCarCategory()!=null){ - document.setCarCategory(asnDocument.getCarCategory().intValue()); - } - - if (asnDocument.getLoadingDeck()!=null){ - document.setLoadingDeck(ILoadingDeckType.valueOf(asnDocument.getLoadingDeck().name())); - } - - if(asnDocument.getLoadingListEntry()!=null){ - document.setLoadingListEntry(asnDocument.getLoadingListEntry().intValue()); - } - - if (asnDocument.getRoofRackHeight()!=null){ - document.setRoofRackHeight(asnDocument.getRoofRackHeight().intValue()); - } - - document.setNumberPlate(asnDocument.getNumberPlate()); - document.setTrailerPlate(asnDocument.getTrailerPlate()); - - if(asnDocument.getRoofRackType()!=null){ - document.setRoofRackType(IRoofRackType.valueOf(asnDocument.getRoofRackType().name())); - } - - if(asnDocument.getTextileRoof()) { - document.setTextileRoof(asnDocument.getTextileRoof()); - } - - - document.setCompartmentDetails(convertCompartmentDetails(asnDocument.getCompartmentDetails())); - - if (asnDocument.getCarrierNum()!=null && !asnDocument.getCarrierNum().isEmpty()){ - for(Long carrier :asnDocument.getCarrierNum()){ - document.addCarrier(carrier.toString()); - } - } - if (asnDocument.getCarrierIA5()!=null && !asnDocument.getCarrierIA5().isEmpty()){ - for(String carrier :asnDocument.getCarrierIA5()){ - document.addCarrier(carrier); - } - } - - if (asnDocument.getCoach()!=null) { - document.setCoach(asnDocument.getCoach()); - } - if (asnDocument.getPlace()!=null) { - document.setPlace(asnDocument.getPlace()); - } - - - document.setPriceType(IPriceTypeType.valueOf(asnDocument.getPriceType().name())); - - IServiceBrand serviceBrand = factory.createServiceBrand(); - - if (asnDocument.getServiceBrand()!=null){ - serviceBrand.setServiceBrand(asnDocument.getServiceBrand().intValue()); - } - serviceBrand.setServiceBrandAbbreviation(asnDocument.getServiceBrandAbrUTF8()); - serviceBrand.setServiceBrandDescription(asnDocument.getServiceBrandNameUTF8()); - - document.setServiceBrand(serviceBrand); - - document.setTrain(UicEncoderUtils.mapToString(asnDocument.getTrainNum(), asnDocument.getTrainIA5())); - - - if (asnDocument.getTariff()!=null){ - document.setTariff(convertTariff(asnDocument.getTariff())); - } - - document.setPrice(asnDocument.getPrice()); - - if (asnDocument.getVatDetails() != null && !asnDocument.getVatDetails().isEmpty()){ - for (VatDetailType vat : asnDocument.getVatDetails()) { - document.addVatDetail(decodeVatDetail(vat)); - } - } - - return null; - } - - - private IVatDetail decodeVatDetail(VatDetailType asnVat) { - - IVatDetail vat = factory.createVatDetail(); - - vat.setAmount(asnVat.getAmount()); - if (asnVat.getPercentage() != null){ - vat.setPercentage(asnVat.getPercentage().intValue()); - } - if (asnVat.getCountry() != null) { - vat.setCountry(asnVat.getCountry().intValue()); - } - vat.setVatId(asnVat.getVatId()); - return vat; - } - - - - - - - - /** - * Convert compartment details. - * - * @param asnDetails the asn details - * @return the i compartment details - */ - protected ICompartmentDetails convertCompartmentDetails(CompartmentDetailsType asnDetails) { - - if (asnDetails == null) return null; - - ICompartmentDetails details = factory.createCompartmentDetails(); - - if (asnDetails.getCompartmentType()!=null) { - details.setCompartmentType(asnDetails.getCompartmentType().intValue()); - } - - if (asnDetails.getCoachType()!=null){ - details.setCoachType(asnDetails.getCoachType().intValue()); - } - - if (asnDetails.getSpecialAllocation()!=null) { - details.setSpecialAllocation(asnDetails.getSpecialAllocation().intValue()); - } - - details.setCoachTypeDescr(asnDetails.getCoachTypeDescr()); - details.setCompartmentTypeDescr(asnDetails.getCompartmentTypeDescr()); - details.setSpecialAllocationDescr(asnDetails.getSpecialAllocationDescr()); - - details.setPosition(ICompartmentPositionType.valueOf(asnDetails.getPosition().name())); - - return details; - } - - /** - * Convert places. - * - * @param asnPlaces the asn places - * @return the i places - */ - protected IPlaces convertPlaces(PlacesType asnPlaces) { - - if (asnPlaces == null) return null; - - IPlaces places = factory.createPlaces(); - - places.setCoach(asnPlaces.getCoach()); - places.setPlaceDescription(asnPlaces.getPlaceDescription()); - - if (asnPlaces.getPlaceNum()!=null && !asnPlaces.getPlaceNum().isEmpty()){ - for (Long place: asnPlaces.getPlaceNum()){ - places.addPlace(place.toString()); - } - } - - if (asnPlaces.getPlaceIA5()!=null && !asnPlaces.getPlaceIA5().isEmpty()){ - for (String place: asnPlaces.getPlaceIA5()){ - places.addPlace(place); - } - } - - places.setPlaceString(asnPlaces.getPlaceString()); - - return places; - } - - /** - * Convert berth. - * - * @param asnBerth the asn berth - * @return the i berth - */ - protected IBerth convertBerth(BerthDetailData asnBerth) { - - if (asnBerth == null) return null; - - IBerth berth = factory.createBerth(); - if (asnBerth.getGender()!= null) { - berth.setGender(ICompartmentGenderType.valueOf(asnBerth.getGender().name())); - } - if (asnBerth.getNumberOfBerths()!=null) { - berth.setNumberOfBerths(asnBerth.getNumberOfBerths().intValue()); - } - if (asnBerth.getBerthType()!=null){ - berth.setType(IBerthTypeType.valueOf(asnBerth.getBerthType().name())); - } - - return berth; - } - - /** - * Convert countermark. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i counter mark - */ - protected ICounterMark convertCountermark(CountermarkData asnDocument , Date issuingDate) { - - ICounterMark document = factory.createCounterMark(); - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - - document.setValidFromUTCoffset(asnDocument.getValidFromUTCOffset()); - if (asnDocument.getValidUntilUTCOffset() != null) { - document.setValidUntilUTCoffset(asnDocument.getValidUntilUTCOffset()); - } else { - document.setValidUntilUTCoffset(asnDocument.getValidFromUTCOffset()); - } - - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - document.setTicketReference(UicEncoderUtils.mapToString(asnDocument.getTicketReferenceNum(),asnDocument.getTicketReferenceIA5())); - - document.setFromStation(UicEncoderUtils.mapToString(asnDocument.getFromStationNum(),asnDocument.getFromStationIA5())); - document.setToStation(UicEncoderUtils.mapToString(asnDocument.getToStationNum(),asnDocument.getToStationIA5())); - - document.setFromStationName(asnDocument.getFromStationNameUTF8()); - document.setToStationName(asnDocument.getToStationNameUTF8()); - document.setValidRegionDesc(asnDocument.getValidRegionDesc()); - - if (asnDocument.getValidRegion()!= null && !asnDocument.getValidRegion().isEmpty()) { - for (RegionalValidityType validRegion :asnDocument.getValidRegion()){ - document.addValidRegionList(convertValidRegion(validRegion, issuingDate)); - } - } - - document.setReturnDescription(convertReturnDescription(asnDocument.getReturnDescription(), issuingDate)); - - - if(asnDocument.getReturnIncluded()!=null){ - document.setReturnIncluded(asnDocument.getReturnIncluded()); - } else { - document.setReturnIncluded(false); - } - - - - document.setGroupName(asnDocument.getGroupName()); - - if (asnDocument.getNumberOfCountermark() != null) { - document.setNumberOfCountermark(asnDocument.getNumberOfCountermark().intValue()); - } - - if (asnDocument.getTotalOfCountermarks() != null) { - document.setTotalOfCountermarks(asnDocument.getTotalOfCountermarks().intValue()); - } - - return document; - - } - - /** - * Convert return description. - * - * @param asnReturnRoute the asn return route - * @param issuingDate the issuing date - * @return the i return route description - */ - protected IReturnRouteDescription convertReturnDescription(ReturnRouteDescriptionType asnReturnRoute, Date issuingDate) { - - if (asnReturnRoute == null) return null; - - IReturnRouteDescription route = factory.createReturnRouteDescription(); - - route.setFromStation(UicEncoderUtils.mapToString(asnReturnRoute.getFromStationNum(),asnReturnRoute.getFromStationIA5())); - route.setToStation(UicEncoderUtils.mapToString(asnReturnRoute.getToStationNum(),asnReturnRoute.getToStationIA5())); - - route.setFromStationName(asnReturnRoute.getFromStationNameUTF8()); - route.setToStationName(asnReturnRoute.getToStationNameUTF8()); - route.setValidRegionDesc(asnReturnRoute.getValidReturnRegionDesc()); - - if (asnReturnRoute.getValidReturnRegion()!= null && !asnReturnRoute.getValidReturnRegion().isEmpty()) { - for (RegionalValidityType validRegion :asnReturnRoute.getValidReturnRegion()){ - route.addValidRegionList(convertValidRegion(validRegion, issuingDate)); - } - } - - return route; - } - - /** - * Convert luggage restriction. - * - * @param asnLuggage the asn luggage - * @return the i luggage restriction - */ - protected ILuggageRestriction convertLuggageRestriction(LuggageRestrictionType asnLuggage) { - - if (asnLuggage == null) return null; - - ILuggageRestriction luggage = factory.createLuggageRestriction(); - if (asnLuggage.getMaxHandLuggagePieces()!=null){ - luggage.setMaxHandLuggagePieces(asnLuggage.getMaxHandLuggagePieces().intValue()); - } - if (asnLuggage.getMaxNonHandLuggagePieces()!=null){ - luggage.setMaxNonHandLuggagePieces(asnLuggage.getMaxNonHandLuggagePieces().intValue()); - } - - - if (asnLuggage.getRegisteredLuggage()!= null &&!asnLuggage.getRegisteredLuggage().isEmpty()){ - for (RegisteredLuggageType rl: asnLuggage.getRegisteredLuggage()){ - luggage.addRegisteredLuggage(convertRegisteredLuggage(rl)); - } - } - return luggage; - } - - /** - * Convert registered luggage. - * - * @param rl the rl - * @return the i registered luggage - */ - protected IRegisteredLuggage convertRegisteredLuggage(RegisteredLuggageType rl) { - - if (rl == null) return null; - - IRegisteredLuggage luggage= factory.createRegisteredLuggage(); - if (rl.getMaxSize()!=null){ - if (rl.getMaxSize()!=null) { - luggage.setMaxSize(rl.getMaxSize().intValue()); - } - } - if (rl.getMaxWeight()!=null){ - if(rl.getMaxWeight()!=null){ - luggage.setMaxWeight(rl.getMaxWeight().intValue()); - } - } - luggage.setRegistrationId(rl.getRegistrationId()); - return luggage; - } - - - /** - * Convert open ticket. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i open ticket - */ - protected IOpenTicket convertOpenTicket(OpenTicketData asnDocument , Date issuingDate) { - - IOpenTicket document = factory.createOpenTicket(); - - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - - document.setValidFromUTCoffset(asnDocument.getValidFromUTCOffset()); - if (asnDocument.getValidUntilUTCOffset() != null) { - document.setValidUntilUTCoffset(asnDocument.getValidUntilUTCOffset()); - } else { - document.setValidUntilUTCoffset(asnDocument.getValidFromUTCOffset()); - } - - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - if (asnDocument.getExcludedServiceBrands()!=null && !asnDocument.getExcludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getExcludedServiceBrands()){ - document.addExcludedServiceBrand(number.intValue()); - } - } - - if (asnDocument.getCarriersNum()!=null && !asnDocument.getCarriersNum().isEmpty()){ - for(Long carrier :asnDocument.getCarriersNum()){ - document.addIncludedCarrier(carrier.toString()); - } - } - if (asnDocument.getCarriersIA5()!=null && !asnDocument.getCarriersIA5().isEmpty()){ - for(String carrier :asnDocument.getCarriersIA5()){ - document.addIncludedCarrier(carrier); - } - } - - - if (asnDocument.getIncludedServiceBrands()!=null && !asnDocument.getIncludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getIncludedServiceBrands()){ - document.addIncludedServiceBrand(number.intValue()); - } - } - - if (asnDocument.getIncludedTransportTypes()!=null && !asnDocument.getIncludedTransportTypes().isEmpty()){ - for(Long number :asnDocument.getIncludedTransportTypes()){ - document.addInludedTransportType(number.intValue()); - } - } - - if (asnDocument.getExcludedTransportTypes()!=null && !asnDocument.getExcludedTransportTypes().isEmpty()){ - for(Long number :asnDocument.getExcludedTransportTypes()){ - document.addExcludedTransportType(number.intValue()); - } - } - - - - if (asnDocument.getTariffs()!=null && !asnDocument.getTariffs().isEmpty()){ - for(TariffType asnTariff :asnDocument.getTariffs()){ - document.addTariff(convertTariff(asnTariff)); - } - } - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - document.setFromStation(UicEncoderUtils.mapToString(asnDocument.getFromStationNum(),asnDocument.getFromStationIA5())); - document.setToStation(UicEncoderUtils.mapToString(asnDocument.getToStationNum(),asnDocument.getToStationIA5())); - document.setFromStationName(asnDocument.getFromStationNameUTF8()); - document.setToStationName(asnDocument.getToStationNameUTF8()); - document.setValidRegionDesc(asnDocument.getValidRegionDesc()); - if (asnDocument.getValidRegion()!= null && !asnDocument.getValidRegion().isEmpty()) { - for (RegionalValidityType validRegion :asnDocument.getValidRegion()){ - document.addValidRegionList(convertValidRegion(validRegion, issuingDate)); - } - } - - if (asnDocument.getIssuerAutorizationId() != null) { - document.setAuthorizationCode(asnDocument.getIssuerAutorizationId().intValue()); - } - - if (asnDocument.getExtIssuerId() != null) { - document.setExternalIssuer(asnDocument.getExtIssuerId().intValue()); - } - - document.setLuggageRestriction(convertLuggageRestriction(asnDocument.getLuggage())); - - document.setReturnDescription(convertReturnDescription(asnDocument.getReturnDescription(), issuingDate)); - if(asnDocument.getReturnIncluded()!=null){ - document.setReturnIncluded(asnDocument.getReturnIncluded()); - } - - if (asnDocument.getActivatedDay()!=null && !asnDocument.getActivatedDay().isEmpty()) { - document.getActivatedDays().addAll(asnDocument.getActivatedDays(issuingDate)); - } - - if (asnDocument.getIncludedAddOns()!= null && !asnDocument.getIncludedAddOns().isEmpty()) { - - for (IncludedOpenTicketType asnAddOn :asnDocument.getIncludedAddOns()) { - - IIncludedOpenTicket addOn = convertIncludedOpenTicket(asnAddOn, issuingDate, document.getClassCode()); - if (addOn != null) { - document.addIncludedAddOn(addOn); - } - } - - - - } - - document.setPrice(asnDocument.getPrice()); - - if (asnDocument.getVatDetails() != null && !asnDocument.getVatDetails().isEmpty()){ - for (VatDetailType vat : asnDocument.getVatDetails()) { - document.addVatDetail(decodeVatDetail(vat)); - } - } - - return document; - - } - - - - /** - * Convert included open ticket. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @param classCode the class code - * @return the simple included open ticket - */ - private IIncludedOpenTicket convertIncludedOpenTicket( IncludedOpenTicketType asnDocument, Date issuingDate, ITravelClassType classCode) { - - IIncludedOpenTicket document = factory.createIncludedOpenTicket(); - - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } else { - document.setClassCode(classCode); - } - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - - document.setValidFromUTCoffset(asnDocument.getValidFromUTCOffset()); - if (asnDocument.getValidUntilUTCOffset() != null) { - document.setValidUntilUTCoffset(asnDocument.getValidUntilUTCOffset()); - } else { - document.setValidUntilUTCoffset(asnDocument.getValidFromUTCOffset()); - } - - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - if (asnDocument.getExcludedServiceBrands()!=null && !asnDocument.getExcludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getExcludedServiceBrands()){ - document.addExcludedServiceBrand(number.intValue()); - } - } - if (asnDocument.getIncludedCarriersNum()!=null && !asnDocument.getIncludedCarriersNum().isEmpty()){ - for(Long carrier :asnDocument.getIncludedCarriersNum()){ - document.addIncludedCarrier(carrier.toString()); - } - } - if (asnDocument.getIncludedCarriersIA5()!=null && !asnDocument.getIncludedCarriersIA5().isEmpty()){ - for(String carrier :asnDocument.getIncludedCarriersIA5()){ - document.addIncludedCarrier(carrier); - } - } - - if (asnDocument.getIncludedServiceBrands()!=null && !asnDocument.getIncludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getIncludedServiceBrands()){ - document.addIncludedServiceBrand(number.intValue()); - } - } - - if (asnDocument.getIncludedTransportTypes()!=null && !asnDocument.getIncludedTransportTypes().isEmpty()){ - for(Long number :asnDocument.getIncludedTransportTypes()){ - document.addInludedTransportType(number.intValue()); - } - } - - if (asnDocument.getExcludedTransportTypes()!=null && !asnDocument.getExcludedTransportTypes().isEmpty()){ - for(Long number :asnDocument.getExcludedTransportTypes()){ - document.addExcludedTransportType(number.intValue()); - } - } - - if (asnDocument.getTariffs()!=null && !asnDocument.getTariffs().isEmpty()){ - for(TariffType asnTariff :asnDocument.getTariffs()){ - document.addTariff(convertTariff(asnTariff)); - } - } - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - - if (asnDocument.getValidRegion()!= null && !asnDocument.getValidRegion().isEmpty()) { - for (RegionalValidityType validRegion :asnDocument.getValidRegion()){ - document.addValidRegionList(convertValidRegion(validRegion, issuingDate)); - } - } - - if (asnDocument.getIssuerAutorizationId()!=null){ - document.setAuthorizationCode(asnDocument.getIssuerAutorizationId().intValue()); - } - if (asnDocument.getExternalIssuerId()!=null){ - document.setExternalIssuer(asnDocument.getExternalIssuerId().intValue()); - } - return document; - } - - - - - - - - /** - * Convert station passage. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i station passage - */ - protected IStationPassage convertStationPassage(StationPassageData asnDocument , Date issuingDate) { - - IStationPassage document = factory.createStationPassage(); - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - - document.setValidFromUTCoffset(asnDocument.getValidFromUTCOffset()); - if (asnDocument.getValidUntilUTCOffset() != null) { - document.setValidUntilUTCoffset(asnDocument.getValidUntilUTCOffset()); - } else { - document.setValidUntilUTCoffset(asnDocument.getValidFromUTCOffset()); - } - - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - if (asnDocument.getNumberOfDaysValid()!=null) { - document.setNumberOfdaysAllowed(asnDocument.getNumberOfDaysValid().intValue()); - } - - if (asnDocument.getStationNum()!=null && !asnDocument.getStationNum().isEmpty()){ - for (Long station : asnDocument.getStationNum()) { - if (station != null) { - document.addStation(station.toString()); - } - } - } - if (asnDocument.getStationIA5()!=null && !asnDocument.getStationIA5().isEmpty()){ - for (String station : asnDocument.getStationIA5()) { - document.addStation(station); - } - } - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - document.setProductName(asnDocument.getProductName()); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - if (asnDocument.getStationNameUTF8()!= null && asnDocument.getStationNameUTF8().isEmpty() ) { - for (String name : asnDocument.getStationNameUTF8()) { - document.addStation(name); - } - } - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - - document.setExtension(convertExtension(asnDocument.getExtension())); - - if (asnDocument.getAreaCodeIA5() != null && !asnDocument.getAreaCodeIA5().isEmpty()) { - for (String code : asnDocument.getAreaCodeIA5()) { - document.addAreaCode(code); - } - } - if (asnDocument.getAreaCodeNum() != null && !asnDocument.getAreaCodeNum().isEmpty()) { - for (Long code : asnDocument.getAreaCodeNum()) { - if (code != null) { - document.addAreaCode(code.toString()); - } - } - } - - if (asnDocument.getAreaNameUTF8() != null && !asnDocument.getAreaNameUTF8().isEmpty()) { - for (String code : asnDocument.getAreaNameUTF8()) { - document.addAreaName(code); - } - } - - - - return document; - } - - - /** - * Convert valid region. - * - * @param asnRegion the asn region - * @param issuingDate the issuing date - * @return the i regional validity - */ - protected IRegionalValidity convertValidRegion(RegionalValidityType asnRegion, Date issuingDate) { - - if (asnRegion == null) return null; - - if (asnRegion.getLines()!=null){ - return convertLine(asnRegion.getLines()); - } - if (asnRegion.getPolygone()!=null){ - return convertPolygone(asnRegion.getPolygone()); - } - if (asnRegion.getTrainLink()!=null){ - return convertTrainLink(asnRegion.getTrainLink(),issuingDate); - } - if (asnRegion.getViaStations()!=null){ - return convertViaStation(asnRegion.getViaStations()); - } - if (asnRegion.getZones()!=null){ - return convertZone(asnRegion.getZones()); - } - return null; - } - - - /** - * Convert parking ground. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i parking ground - */ - protected IParkingGround convertParkingGround(ParkingGroundData asnDocument , Date issuingDate) { - - IParkingGround document = factory.createParkingGround(); - - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - - - document.setAccessCode(asnDocument.getAccessCode()); - document.setLocation(asnDocument.getLocation()); - - document.setExtension(convertExtension(asnDocument.getExtension())); - - document.setNumberPlate(asnDocument.getNumberPlate()); - document.setEntryTrack(asnDocument.getEntryTrack()); - - - document.setFromParkingDate(asnDocument.getFromParkingDate(issuingDate)); - document.setToParkingDate(asnDocument.getToParkingDate(issuingDate)); - - document.setParkingGroundId(asnDocument.getParkingGroundId()); - - document.setSpecialInformation(asnDocument.getSpecialInformation()); - - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - - document.setStation(UicEncoderUtils.mapToString(asnDocument.getStationNum(),asnDocument.getStationIA5())); - - document.setPrice(asnDocument.getPrice()); - - if (asnDocument.getVatDetails() != null && !asnDocument.getVatDetails().isEmpty()){ - for (VatDetailType vat : asnDocument.getVatDetails()) { - document.addVatDetail(decodeVatDetail(vat)); - } - } - - return document; - } - - /** - * Convert via station. - * - * @param asnDocument the asn via - * @return the i via station - */ - protected IViaStation convertViaStation(ViaStationType asnDocument) { - - if (asnDocument == null) return null; - - IViaStation via = factory.createViaStation(); - - if (asnDocument.getBorder()!=null) { - via.setBorder(asnDocument.getBorder()); - } - - if (asnDocument.getRouteId() != null) { - via.setRouteId(asnDocument.getRouteId().intValue()); - } - - if (asnDocument.getStationCodeTable()!=null){ - via.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - - if (asnDocument.getStationNum() != null) { - via.setStation(asnDocument.getStationNum().toString()); - } else if (asnDocument.getStationIA5() != null) { - via.setStation(asnDocument.getStationIA5()); - } - - if (asnDocument.getCarriersNum()!=null && !asnDocument.getCarriersNum().isEmpty()){ - for(Long carrier :asnDocument.getCarriersNum()){ - via.addCarrier(carrier.toString()); - } - } - if (asnDocument.getCarriersIA5()!=null && !asnDocument.getCarriersIA5().isEmpty()){ - for(String carrier :asnDocument.getCarriersIA5()){ - via.addCarrier(carrier); - } - } - - if (asnDocument.getRoute()!= null && !asnDocument.getRoute().isEmpty()) { - for ( ViaStationType routeVia: asnDocument.getRoute()) { - via.addRouteStation(convertViaStation(routeVia)); - } - } - if (asnDocument.getAlternativeRoutes()!= null && !asnDocument.getAlternativeRoutes().isEmpty()) { - for ( ViaStationType routeVia: asnDocument.getAlternativeRoutes()) { - via.addRouteStation(convertViaStation(routeVia)); - } - } - - - return via; - } - - /** - * Convert train link. - * - * @param asnTrainLink the asn train link - * @param issuingDate the issuing date - * @return the i regional validity - */ - protected IRegionalValidity convertTrainLink(TrainLinkType asnTrainLink, Date issuingDate) { - - ITrainLink trainLink = factory.createTrainLink(); - - trainLink.setTrain(UicEncoderUtils.mapToString(asnTrainLink.getTrainNum(), asnTrainLink.getTrainIA5())); - - trainLink.setFromStation(UicEncoderUtils.mapToString(asnTrainLink.getFromStationNum(),asnTrainLink.getFromStationIA5())); - trainLink.setToStation(UicEncoderUtils.mapToString(asnTrainLink.getToStationNum(),asnTrainLink.getToStationIA5())); - trainLink.setFromStationName(asnTrainLink.getFromStationName()); - trainLink.setToStationName(asnTrainLink.getToStationName()); - - trainLink.setDepartureDateTime(asnTrainLink.getDepartureDate(issuingDate)); - - return trainLink; - } - - /** - * Convert zone. - * - * @param asnDocument the asn zone - * @return the i regional validity - */ - protected IRegionalValidity convertZone(ZoneType asnDocument) { - - if (asnDocument == null) return null; - - IZone zone = factory.createZone(); - - zone.setBinaryZoneId(asnDocument.getBinaryZoneId()); - zone.setCarrier(UicEncoderUtils.mapToString(asnDocument.getCarrierNum(),asnDocument.getCarrierIA5())); - - if (asnDocument.getCity() != null) { - zone.setCity(asnDocument.getCity().intValue()); - } - if (asnDocument.getStationCodeTable()!=null){ - zone.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - zone.setEntryStation(UicEncoderUtils.mapToString(asnDocument.getEntryStationNum(),asnDocument.getEntryStationIA5())); - zone.setTerminatingStation(UicEncoderUtils.mapToString(asnDocument.getTerminatingStationNum(),asnDocument.getTerminatingStationIA5())); - - zone.setNUTScode(asnDocument.getNutsCode()); - - return zone; - } - - /** - * Convert polygone. - * - * @param asnPolygone the asn polygone - * @return the i regional validity - */ - protected IRegionalValidity convertPolygone(PolygoneType asnPolygone) { - - if (asnPolygone == null) return null; - - IPolygone polygone = factory.createPolygone(); - - IGeoCoordinate firstEdge = convertGeoCoordinate(asnPolygone.getFirstEdge()); - - if (firstEdge == null) return null; - - if (asnPolygone.getEdges()!=null && !asnPolygone.getEdges().isEmpty()) { - for (DeltaCoordinates asnEdge :asnPolygone.getEdges()){ - - IGeoCoordinate edge = firstEdge.clone(); - try { - edge.addLongitude(asnEdge.getLongitude().longValue()); - edge.addLatitude(asnEdge.getLatitude().longValue()); - } catch (Exception e) { - - } - polygone.addEdge(edge); - } - } - return polygone; - } - - /** - * Convert line. - * - * @param asnDocument the asn line - * @return the i regional validity - */ - protected IRegionalValidity convertLine(LineType asnDocument) { - - if (asnDocument == null) return null; - - ILine line = factory.createLine(); - - line.setBinaryZoneId(asnDocument.getBinaryZoneId()); - line.setCarrier(UicEncoderUtils.mapToString(asnDocument.getCarrierNum(),asnDocument.getCarrierIA5())); - if (asnDocument.getCity()!=null) { - line.setCity(asnDocument.getCity().intValue()); - } - if (asnDocument.getStationCodeTable()!=null){ - line.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - line.setEntryStation(UicEncoderUtils.mapToString(asnDocument.getEntryStationNum(),asnDocument.getEntryStationIA5())); - line.setTerminatingStation(UicEncoderUtils.mapToString(asnDocument.getTerminatingStationNum(),asnDocument.getTerminatingStationIA5())); - if (asnDocument.getLineId()!=null && !asnDocument.getLineId().isEmpty()){ - for (Long lineId : asnDocument.getLineId()) { - line.addLineId(lineId.intValue()); - } - } - return line; - } - - /** - * Convert tariff. - * - * @param asnTariff the asn tariff - * @return the i tariff - */ - protected ITariff convertTariff(TariffType asnTariff) { - - if (asnTariff== null) return null; - - ITariff tariff = factory.createTariff(); - - if (asnTariff.getAgeAbove() != null) { - tariff.setAgeAbove(asnTariff.getAgeAbove().intValue()); - } - - if (asnTariff.getAgeBelow() != null) { - tariff.setAgeBelow(asnTariff.getAgeBelow().intValue()); - } - - if(asnTariff.getNumberOfPassengers()!=null){ - tariff.setNumberOfPassengers(asnTariff.getNumberOfPassengers().intValue()); - } - - if (asnTariff.getSeriesDataDetails() != null) { - tariff.setSeriesDataDetails(convertSeriesDataDetails(asnTariff.getSeriesDataDetails())); - } - - - if (asnTariff.getPassengerType()!=null) { - tariff.setPassengerType(IPassengerType.valueOf(asnTariff.getPassengerType().name())); - } - - - if(asnTariff.getRestrictedToCountryOfResidence()!=null){ - tariff.setRestrictedToCountryOfResidence(asnTariff.getRestrictedToCountryOfResidence()); - } - if (asnTariff.getRestrictedToRouteSection()!=null){ - tariff.setRestrictedToRouteSection(convertRouteSection(asnTariff.getRestrictedToRouteSection())); - } - - - tariff.setTariffDescription(asnTariff.getTariffDesc()); - tariff.setTariffId(UicEncoderUtils.mapToString(asnTariff.getTariffIdNum(),asnTariff.getTariffIdIA5())); - - if (asnTariff.getTraverlerid()!= null && !asnTariff.getTraverlerid().isEmpty() ) { - for (Long number : asnTariff.getTraverlerid()){ - tariff.addTravelerId(number.intValue()); - } - } - - if (asnTariff.getReductionCard()!=null && !asnTariff.getReductionCard().isEmpty()){ - for(CardReferenceType card : asnTariff.getReductionCard()){ - tariff.addReductionCard(convertCardReference(card)); - } - } - - return tariff; - } - - private ISeriesDataDetails convertSeriesDataDetails(SeriesDetailType asnDetails) { - - if (asnDetails == null) return null; - - ISeriesDataDetails details = factory.createSeriesDataDetails(); - - if (asnDetails.getSeries() != null) { - details.setSeries(asnDetails.getSeries().intValue()); - } - - if (asnDetails.getSupplyingCarrier() != null) { - details.setSupplyingCarrier(asnDetails.getSupplyingCarrier().intValue()); - } - - if (asnDetails.getOfferIdentification() != null) { - details.setOfferIdentification(asnDetails.getOfferIdentification().intValue()); - } - - return details; - } - - - - - - - - /** - * Convert route section. - * - * @param asnDocument the asn document - * @return the i route section - */ - protected IRouteSection convertRouteSection(RouteSectionType asnDocument) { - - if (asnDocument == null) return null; - - IRouteSection document = factory.createRouteSection(); - if (asnDocument.getStationCodeTable()!=null){ - document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); - } - document.setFromStation(UicEncoderUtils.mapToString(asnDocument.getFromStationNum(),asnDocument.getFromStationIA5())); - document.setToStation(UicEncoderUtils.mapToString(asnDocument.getToStationNum(),asnDocument.getToStationIA5())); - document.setFromStationName(asnDocument.getFromStationNameUTF8()); - document.setToStationName(asnDocument.getToStationNameUTF8()); - return document; - } - - /** - * Convert fip ticket. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i fip ticket - */ - protected IFipTicket convertFipTicket(FIPTicketData asnDocument , Date issuingDate) { - - if (asnDocument == null) return null; - - IFipTicket document = factory.createFipTicket(); - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - - - - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - if (asnDocument.getActivatedDay() != null && !asnDocument.getActivatedDay().isEmpty()) { - document.getActivatedDays().addAll(asnDocument.getActivatedDays(issuingDate)); - } - - if(asnDocument.getIncludesSupplements()!=null) { - document.setIncludesSupplements(asnDocument.getIncludesSupplements()); - } - if(asnDocument.getNumberOfTravelDays()!=null){ - document.setNumberOfTravelDates(asnDocument.getNumberOfTravelDays().intValue()); - } - - document.setExtension(convertExtension(asnDocument.getExtension())); - - return document; - } - - /** - * Convert pass. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i pass - */ - protected IPass convertPass(PassData asnDocument, Date issuingDate) { - - if (asnDocument == null) return null; - - IPass document = factory.createPass(); - - if(asnDocument.getClassCode()!=null){ - document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - - document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); - document.setValidFromUTCoffset(asnDocument.getValidFromUTCOffset()); - - document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - document.setValidUntilUTCoffset(asnDocument.getValidUntilUTCOffset()); - - if (asnDocument.getActivatedDay() != null && !asnDocument.getActivatedDay().isEmpty()) { - document.getActivatedDays().addAll(asnDocument.getActivatedDays(issuingDate)); - } - - document.setExtension(convertExtension(asnDocument.getExtension())); - document.setInfoText(asnDocument.getInfoText()); - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - if (asnDocument.getNumberOfDaysOfTravel() != null) { - document.setNumberOfDaysOfTravel(asnDocument.getNumberOfDaysOfTravel().intValue()); - } - if (asnDocument.getNumberOfPossibleTrips() != null) { - document.setNumberOfPossibleTrips(asnDocument.getNumberOfPossibleTrips().intValue()); - } - - document.setPassDescription(asnDocument.getPassDescription()); - if(asnDocument.getPassType()!=null){ - document.setPassType(asnDocument.getPassType().intValue()); - } - - - - if (asnDocument.getCountries()!=null && !asnDocument.getCountries().isEmpty()){ - for(Long number :asnDocument.getCountries()){ - document.addCountry(number.intValue()); - } - } - if (asnDocument.getExcludedServiceBrands()!=null && !asnDocument.getExcludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getExcludedServiceBrands()){ - document.addExcludedServiceBrand(number.intValue()); - } - } - - if (asnDocument.getIncludedCarriersNum()!=null && !asnDocument.getIncludedCarriersNum().isEmpty()){ - for(Long carrier :asnDocument.getIncludedCarriersNum()){ - document.addIncludedCarrier(carrier.toString()); - } - } - if (asnDocument.getIncludedCarriersIA5()!=null && !asnDocument.getIncludedCarriersIA5().isEmpty()){ - for(String carrier :asnDocument.getIncludedCarriersIA5()){ - document.addIncludedCarrier(carrier); - } - } - - if (asnDocument.getExcludedCarriersNum()!=null && !asnDocument.getExcludedCarriersNum().isEmpty()){ - for(Long carrier :asnDocument.getExcludedCarriersNum()){ - document.addExcludedCarrier(carrier.toString()); - } - } - if (asnDocument.getExcludedCarriersIA5()!=null && !asnDocument.getExcludedCarriersIA5().isEmpty()){ - for(String carrier :asnDocument.getExcludedCarriersIA5()){ - document.addExcludedCarrier(carrier); - } - } - - - if (asnDocument.getIncludedServiceBrands()!=null && !asnDocument.getIncludedServiceBrands().isEmpty()){ - for(Long number :asnDocument.getIncludedServiceBrands()){ - document.addIncludedServiceBrand(number.intValue()); - } - } - - if (asnDocument.getTariffs()!=null && !asnDocument.getTariffs().isEmpty()){ - for(TariffType asnTariff :asnDocument.getTariffs()){ - document.addTariff(convertTariff(asnTariff)); - } - } - - if (asnDocument.getValidRegion()!=null && !asnDocument.getValidRegion().isEmpty()){ - for(RegionalValidityType asnRegion :asnDocument.getValidRegion()){ - document.addValidRegion(convertValidRegion(asnRegion, issuingDate)); - } - } - - - if (asnDocument.getValidityPeriodDetails() != null) { - document.setValidityDetails(convertValidityDetails(asnDocument.getValidityPeriodDetails(), issuingDate)); - } - - document.setPrice(asnDocument.getPrice()); - - if (asnDocument.getVatDetails() != null && !asnDocument.getVatDetails().isEmpty()){ - for (VatDetailType vat : asnDocument.getVatDetails()) { - document.addVatDetail(decodeVatDetail(vat)); - } - } - - - return document; - } - - private IValidityDetails convertValidityDetails(ValidityPeriodDetailType asnDetails, Date issuingDate) { - - if (asnDetails == null) return null; - - IValidityDetails details = factory.createValidityDetails(); - - if (asnDetails.getExcludedTimeRange()!= null && !asnDetails.getExcludedTimeRange().isEmpty()) { - - ITimeRange range = factory.createTimeRange(); - - for (TimeRangeType asnRange : asnDetails.getExcludedTimeRange() ) { - - if (asnRange.getFromTime() != null) { - range.setFromTime(asnRange.getFromTime().intValue()); - } - if (asnRange.getUntilTime() != null) { - range.setUntilTime(asnRange.getUntilTime().intValue()); - } - - details.addTimeRanges(range); - } - - - - } - - if (asnDetails.getValidityPeriod()!= null && !asnDetails.getValidityPeriod().isEmpty()) { - - IValidityRange range = factory.createValidityRange(); - - for (ValidityPeriodType asnRange : asnDetails.getValidityPeriod() ) { - - range.setFromDate(asnRange.getValidFromDate(issuingDate)); - range.setUntilDate(asnRange.getValidUntilDate(issuingDate)); - - range.setValidFromUTCoffset(asnRange.getValidFromUTCOffset()); - if (asnRange.getValidUntilUTCOffset() != null) { - range.setValidUntilUTCoffset(asnRange.getValidUntilUTCOffset()); - } else { - range.setValidUntilUTCoffset(asnRange.getValidFromUTCOffset()); - } - - details.addValidityRanges(range); - } - - } - - return details; - } - - - - - - - - /** - * Convert voucher. - * - * @param asnDocument the asn document - * @param issuingDate the issuing date - * @return the i voucher - */ - protected IVoucher convertVoucher(VoucherData asnDocument , Date issuingDate) { - - if (asnDocument == null) return null; - - IVoucher document = factory.createVoucher(); - - document.setValidFrom(asnDocument.getValidFrom()); - - document.setValidUntil(asnDocument.getValidUntil()); - - document.setInfoText(asnDocument.getInfoText()); - document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); - document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); - - if (asnDocument.getValue()!=null) { - document.setAmount(asnDocument.getValue().intValue()); - } - - if (asnDocument.getType()!= null) { - document.setType(asnDocument.getType().intValue()); - } - - document.setExtension(convertExtension(asnDocument.getExtension())); - - return document; - } - - /** - * Convert customer card. - * - * @param asnDocument the asn card - * @param issuingDate the issuing date - * @return the i customer card - */ - protected ICustomerCard convertCustomerCard(CustomerCardData asnDocument, Date issuingDate ) { - - if (asnDocument == null) return null; - - ICustomerCard card = factory.createCustomerCard(); - - card.setCardId(UicEncoderUtils.mapToString(asnDocument.getCardIdNum(), asnDocument.getCardIdIA5())); - if (asnDocument.getCardType()!= null) { - card.setCardType(asnDocument.getCardType().intValue()); - } - card.setCardTypeDescr(asnDocument.getCardTypeDescr()); - if(asnDocument.getClassCode()!=null){ - card.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); - } - if(asnDocument.getCustomer()!=null) { - card.setCustomer(convertTraveler(asnDocument.getCustomer())); - } - if (asnDocument.getCustomerStatus()!=null) { - card.setCustomerStatus(asnDocument.getCustomerStatus().intValue()); - } - - card.setCustomerStatusDescr(asnDocument.getCustomerStatusDescr()); - - card.setValidFrom(asnDocument.getValidFromDate()); - - card.setValidUntil(asnDocument.getValidUntilDate()); - - - if (asnDocument.getIncludedServices() != null && !asnDocument.getIncludedServices().isEmpty()){ - for (Long service: asnDocument.getIncludedServices()){ - card.addIncludedService(new Integer(service.intValue())); - } - } - return card; - } - - - /** - * Convert document extension. - * - * @param extension the extension - * @return the i document extension - */ - protected IDocumentExtension convertDocumentExtension(ExtensionData asnExtension) { - - if (asnExtension == null) return null; - - IDocumentExtension documentExtension = factory.createDocumentExtension(); - documentExtension.setId(asnExtension.getExtensionId()); - documentExtension.setBinarydata(asnExtension.getExtensionData()); - return documentExtension; - } - - - /** - * Populate traveler details. - * - * @param asnTravelerDetails the asn traveler details - * @param travelerDetails the traveler details - */ - protected void populateTravelerDetails(TravelerData asnTravelerDetails,ITravelerDetail travelerDetails) { - - if (asnTravelerDetails == null) return; - - travelerDetails.setGroupName(asnTravelerDetails.getGroupName()); - - travelerDetails.setPreferredLanguage(asnTravelerDetails.getPreferedLanguage()); - - if (asnTravelerDetails.getTraveler() != null && !asnTravelerDetails.getTraveler().isEmpty() ) { - for ( TravelerType asnTraveler : asnTravelerDetails.getTraveler() ){ - travelerDetails.addTraveler(convertTraveler(asnTraveler)); - } - } - } - - /** - * Convert traveler. - * - * @param asnTraveler the asn traveler - * @return the i traveler - */ - protected ITraveler convertTraveler(TravelerType asnTraveler) { - - if (asnTraveler == null) return null; - - ITraveler traveler = factory.createTraveler(); - - if (asnTraveler.getCountryOfResidence() != null){ - traveler.setCountryOfResidence(asnTraveler.getCountryOfResidence().intValue()); - } - if (asnTraveler.getCountryOfPassport() != null) { - traveler.setPassportCountry(asnTraveler.getCountryOfPassport().intValue()); - } - - if (asnTraveler.getCountryOfIdCard() != null) { - traveler.setIDCardCountry(asnTraveler.getCountryOfIdCard().intValue()); - } - - - traveler.setCustomerId(UicEncoderUtils.mapToString(asnTraveler.getCustomerIdNum(),asnTraveler.getCustomerIdIA5())); - - traveler.setDateOfBirth(asnTraveler.getDateOfBirth()); - - traveler.setFirstName(asnTraveler.getFirstName()); - if (asnTraveler.getGender()!= null) { - traveler.setGender(IGenderType.valueOf(asnTraveler.getGender().name())); - } - traveler.setIdCard(asnTraveler.getIdCard()); - traveler.setLastName(asnTraveler.getLastName()); - - if (asnTraveler.getPassengerType()!= null) { - traveler.setPassengerType(IPassengerType.valueOf(asnTraveler.getPassengerType().name())); - } - if (asnTraveler.getPassengerWithReducedMobility()!= null) { - traveler.setPassengerWithReducedMobility(asnTraveler.getPassengerWithReducedMobility()); - } - - traveler.setPassportId(asnTraveler.getPassportId()); - traveler.setSecondName(asnTraveler.getSecondName()); - - if (asnTraveler.getTicketHolder() != null) { - traveler.setTicketHolder(asnTraveler.getTicketHolder()); - } - - if (asnTraveler.getStatus()!= null && !asnTraveler.getStatus().isEmpty()) { - - for (CustomerStatusType asnStatus : asnTraveler.getStatus()){ - - traveler.addStatusDescription( mapToStatusDescription(asnStatus) ); - - } - - } - - traveler.setTitle(asnTraveler.getTitle()); - - return traveler; - } - - /** - * Map to status description. - * - * @param asnStatus the asn status - * @return the i customer status description - */ - private ICustomerStatusDescription mapToStatusDescription( CustomerStatusType asnStatus) { - - if (asnStatus == null) return null; - - ICustomerStatusDescription status = factory.createCustomerStatusDescription(); - - status.setDescription(asnStatus.getCustomerStatusDescr()); - - if (asnStatus.getCustomerStatus()!=null) { - status.setStatus(asnStatus.getCustomerStatus().intValue()); - } - - status.setStatusProvider(UicEncoderUtils.mapToString(asnStatus.getStatusProviderNum(), asnStatus.getStatusProviderIA5())); - - return status; - } - - - - - - - - /** - * Populate control details. - * - * @param asnControlDetails the asn control details - * @param controlDetails the control details - */ - protected void populateControlDetails(ControlData asnControlDetails, IControlDetail controlDetails) { - - if (asnControlDetails == null || controlDetails==null ) return; - - if (asnControlDetails.getAgeCheckRequired()!= null) { - controlDetails.setAgeCheckRequired(asnControlDetails.getAgeCheckRequired()); - } - - controlDetails.setExtension(convertExtension(asnControlDetails.getExtension())); - - if (asnControlDetails.getIdentificationByIdCard()!=null){ - controlDetails.setIdentificationByIdCard(asnControlDetails.getIdentificationByIdCard()); - } - - if (asnControlDetails.getIdentificationByPassportId()!= null){ - controlDetails.setIdentificationByPassportId(asnControlDetails.getIdentificationByPassportId()); - } - - if(asnControlDetails.getIdentificationItem()!=null){ - controlDetails.setIdentificationItem(asnControlDetails.getIdentificationItem().intValue()); - } - - controlDetails.setInfoText(asnControlDetails.getInfoText()); - - if (asnControlDetails.getOnlineValidationRequired()!=null){ - controlDetails.setOnlineValidationRequired(asnControlDetails.getOnlineValidationRequired()); - } - - if (asnControlDetails.getRandomDetailedValidationRequired()!= null){ - controlDetails.setRandomDetailedValidationRequired(asnControlDetails.getRandomDetailedValidationRequired().intValue()); - } - - if (asnControlDetails.getReductionCardCheckRequired() != null){ - controlDetails.setReductionCardCheckRequired(asnControlDetails.getReductionCardCheckRequired()); - } - - if(asnControlDetails.getIdentificationByCardReference()!=null && !asnControlDetails.getIdentificationByCardReference().isEmpty()) { - for (CardReferenceType asnCardReference : asnControlDetails.getIdentificationByCardReference()){ - controlDetails.addIdentificationByCardReference(convertCardReference(asnCardReference)); - } - } - - if (asnControlDetails.getIncludedTickets()!=null && !asnControlDetails.getIncludedTickets().isEmpty()) { - for (TicketLinkType asnTicketLink : asnControlDetails.getIncludedTickets()) { - controlDetails.addLinkedTicket(convertTicketLink(asnTicketLink)); - } - } - - - } - - - - - - /** - * Populate issuing detail. - * - * @param asnIssuingDetail the asn issuing detail - * @param issuingDetail the issuing detail - */ - protected void populateIssuingDetail(IssuingData asnIssuingDetail,IIssuingDetail issuingDetail){ - - if (asnIssuingDetail== null || issuingDetail == null) return; - - if (asnIssuingDetail.getActivated() != null) { - issuingDetail.setActivated(asnIssuingDetail.getActivated()); - } - - if (asnIssuingDetail.getSpecimen() != null) { - issuingDetail.setSpecimen(asnIssuingDetail.getSpecimen()); - } else { - issuingDetail.setSpecimen(false); - } - - - if (asnIssuingDetail.getSecurePaperTicket() != null) { - issuingDetail.setSecurePaperTicket(asnIssuingDetail.getSecurePaperTicket()); - } else { - issuingDetail.setSecurePaperTicket(false); - } - - issuingDetail.setExtension(convertExtension(asnIssuingDetail.getExtension())); - - if (asnIssuingDetail.getIssuedOnLine()!= null) { - issuingDetail.setIssuedOnLine(asnIssuingDetail.getIssuedOnLine().intValue()); - } - - if (asnIssuingDetail.getIssuedOnTrainIA5()!= null) { - issuingDetail.setIssuedOnTrain(asnIssuingDetail.getIssuedOnTrainIA5()); - } - if (asnIssuingDetail.getIssuedOnTrainNum()!= null) { - issuingDetail.setIssuedOnTrain(asnIssuingDetail.getIssuedOnTrainNum().toString()); - } - - if (asnIssuingDetail.getIssuerNum() != null || asnIssuingDetail.getIssuerIA5() != null) { - issuingDetail.setIssuer(UicEncoderUtils.mapToString(asnIssuingDetail.getIssuerNum(), asnIssuingDetail.getIssuerIA5())); - } - - issuingDetail.setIssuerName(asnIssuingDetail.getIssuerName()); - - issuingDetail.setIssuerPNR(asnIssuingDetail.getIssuerPNR()); - - issuingDetail.setSecurityProvider(UicEncoderUtils.mapToString(asnIssuingDetail.getSecurityProviderNum(),asnIssuingDetail.getSecurityProviderIA5())); - - - issuingDetail.setIssuingDate(asnIssuingDetail.getIssuingDate()); - - - if (asnIssuingDetail.getPointOfSale() != null) { - issuingDetail.setPointOfSale(convertGeoCoordinate(asnIssuingDetail.getPointOfSale())); - } - - } - - - - /** - * Convert geo coordinate. - * - * @param asnCoordinate the asn coordinate - * @return the i geo coordinate - */ - protected IGeoCoordinate convertGeoCoordinate(GeoCoordinateType asnCoordinate) { - - if (asnCoordinate == null) return null; - - IGeoCoordinate coordinate = factory.createGeoCoordinate(); - - if (asnCoordinate.getCoordinateSystem() != null) { - coordinate.setSystem(IGeoCoordinateSystemType.valueOf(asnCoordinate.getCoordinateSystem().name())); - } - - if (asnCoordinate.getAccuracy() != null) { - coordinate.setAccuracy(IGeoUnitType.valueOf(asnCoordinate.getAccuracy().name())); - } - - if (asnCoordinate.getGeoUnit() != null) { - coordinate.setUnit(IGeoUnitType.valueOf(asnCoordinate.getGeoUnit().name())); - } - - if (asnCoordinate.getHemisphereLatitude() != null) { - coordinate.setHemisphereLatitude(IHemisphereLatitudeType.valueOf(asnCoordinate.getHemisphereLatitude().name())); - } - - if (asnCoordinate.getHemisphereLongitude() != null) { - coordinate.setHemisphereLongitude(IHemisphereLongitudeType.valueOf(asnCoordinate.getHemisphereLongitude().name())); - } - - coordinate.setLongitude (asnCoordinate.getLongitude()); - coordinate.setLatitude (asnCoordinate.getLatitude()); - - - return coordinate; - } - - - /** - * Convert extension. - * - * @param asnExtension the asn extension - * @return the i extension - */ - protected IExtension convertExtension(ExtensionData asnExtension) { - if (asnExtension == null) return null; - IExtension extension = factory.createExtension(); - extension.setId(asnExtension.getExtensionId()); - extension.setBinarydata(asnExtension.getExtensionData()); - return extension; - } - - - /** - * Convert ticket link. - * - * @param asnTicketLink the asn ticket link - * @return the i ticket link - */ - protected ITicketLink convertTicketLink(TicketLinkType asnTicketLink) { - - if (asnTicketLink == null) return null; - - ITicketLink ticketLink = factory.createTicketLink(); - ticketLink.setIssuer(asnTicketLink.getIssuerName()); - ticketLink.setIssuerPNR(asnTicketLink.getIssuerPNR()); - ticketLink.setProductOwner(UicEncoderUtils.mapToString(asnTicketLink.getProductOwnerNum(),asnTicketLink.getProductOwnerIA5())); - ticketLink.setReference(UicEncoderUtils.mapToString(asnTicketLink.getReferenceNum(),asnTicketLink.getReferenceIA5())); - if(asnTicketLink.getTicketType()!=null) { - ticketLink.setTicketType(ITicketType.valueOf(asnTicketLink.getTicketType().name())); - } - if(asnTicketLink.getLinkMode()!=null) { - ticketLink.setLinkMode(ILinkMode.valueOf(asnTicketLink.getLinkMode().name())); - } - return ticketLink; - } - - /** - * Convert card reference. - * - * @param asnCardReference the asn card reference - * @return the card reference - */ - protected ICardReference convertCardReference(CardReferenceType asnCardReference) { - - if (asnCardReference == null) return null; - - ICardReference cardReference = factory.createCardReference(); - cardReference.setCardId(UicEncoderUtils.mapToString(asnCardReference.getCardIdNum(),asnCardReference.getCardIdIA5())); - cardReference.setCardIssuer(UicEncoderUtils.mapToString(asnCardReference.getCardIssuerNum(),asnCardReference.getCardIssuerIA5())); - cardReference.setCardName(asnCardReference.getCardName()); - - if(asnCardReference.getCardType()!=null) { - cardReference.setCardType(asnCardReference.getCardType().intValue()); - } - - - cardReference.setLeadingCardId(UicEncoderUtils.mapToString(asnCardReference.getLeadingCardIdNum(),asnCardReference.getLeadingCardIdIA5())); - cardReference.setTrailingCardId(UicEncoderUtils.mapToString(asnCardReference.getTrailingCardIdNum(),asnCardReference.getTrailingCardIdIA5())); - - return cardReference; - } - -} diff --git a/src/org/uic/barcode/ticket/api/utils/UicEncoderUtils.java b/src/org/uic/barcode/ticket/api/utils/UicEncoderUtils.java deleted file mode 100644 index 73f96f1..0000000 --- a/src/org/uic/barcode/ticket/api/utils/UicEncoderUtils.java +++ /dev/null @@ -1,514 +0,0 @@ -/* - * - */ -package org.uic.barcode.ticket.api.utils; - -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; - -import org.uic.barcode.asn1.datatypes.Asn1BigInteger; -import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringIA5; -import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; -import org.uic.barcode.ticket.EncodingFormatException; - - -/** - * The Class UicEncoderUtils. - */ -public class UicEncoderUtils { - - - - /** - * Map to int. - * - * @param o the object to be mapped to an integer - * @return the int - */ - public static int mapToInt(Object o){ - - if (o == null){ - return 0; - } - - if (o instanceof Integer) { - return ((Integer)o).intValue(); - } - - if (o instanceof Long) { - return ((Long)o).intValue(); - } - - if (o instanceof String) { - - int i = 0; - - try { - i = Integer.parseInt((String)o); - } catch (NumberFormatException e) { - return 0; - } - - - return i; - } - - int i = 0; - - try { - i = Integer.parseInt(o.toString()); - } catch (NumberFormatException e) { - return 0; - } - - - return i; - - } - - /** - * Map to string. - * - * @param number the number - * @param text the text - * @return the string - */ - public static String mapToString(Asn1BigInteger number, String text) { - if (text != null && text.length() > 0) { - return text; - } else { - if (number != null){ - return number.value().toString(); - } else { - return null; - } - } - } - - /** - * Map to string. - * - * @param number the number - * @param text the text - * @return the string - */ - public static String mapToString(BigInteger number, String text) { - if (text != null && text.length() > 0) { - return text; - } else { - if (number != null){ - return number.toString(); - } else { - return null; - } - } - } - - /** - * Map to string. - * - * @param number the number - * @param text the text - * @return the string - */ - public static String mapToString(Integer number, String text) { - - if (text != null && text.length() > 0) { - return text; - } else { - if (number != null){ - return number.toString(); - } else { - return null; - } - } - } - - /** - * Map to string. - * - * @param number the number - * @param text the text - * @return the string - */ - public static String mapToString(Long number, String text) { - - if (text != null && text.length() > 0) { - return text; - } else { - if (number != null){ - return number.toString(); - } else { - return null; - } - } - } - - - - - /** - * Map to string. - * - * @param numbers the numbers - * @return the collection - */ - public static Collection mapToString(Collection numbers) { - - Collection list = new HashSet(); - - if (numbers == null || numbers.isEmpty()) { - return list; - } - - for (Long number : numbers){ - list.add(number.toString()); - } - - return list; - } - - - - - /** - * Gets the num. - * - * @param text the text - * @return the num - */ - public static Long getNum(String text) { - - if (text == null || text.length() == 0) { - return null; - } - - Long i; - try { - i = Long.parseLong(text); - } catch (NumberFormatException e) { - return null; - } - return i; - } - - /** - * Gets the num. - * - * @param text the text - * @return the num - */ - public static Asn1BigInteger getLargeNum(String text) { - - if (text == null || text.length() == 0) { - return null; - } - - BigInteger i; - try { - i = new BigInteger(text); - } catch (NumberFormatException e) { - return null; - } - return new Asn1BigInteger(i); - } - - /** - * Gets the num list. - * - * @param list the list - * @return the num list - * @throws EncodingFormatException the encoding format exception - */ - public static List getNumList(Collection list) throws EncodingFormatException { - - if (list== null || list.isEmpty()) { - return null; - } - List numList = new ArrayList(); - - for (String text : list){ - Long num = getNum (text); - if (num != null) { - numList.add(num); - } - } - - - if (numList.isEmpty()) { - return null; - } - - return numList; - } - - /** - * Gets the i a5 non num list. - * - * @param list the list - * @return the i a5 non num list - * @throws EncodingFormatException the encoding format exception - */ - public static SequenceOfStringIA5 getIA5NonNumList(Collection list) throws EncodingFormatException { - - if (list== null || list.isEmpty()) { - return null; - } - SequenceOfStringIA5 ia5List = new SequenceOfStringIA5(); - - for (String text : list){ - String ia5 = getIA5NonNum (text); - if (ia5 != null && ia5.length() > 0) { - ia5List.add(ia5); - } - } - - - if (ia5List.isEmpty()) { - return null; - } - - return ia5List; - } - - - - - /** - * Gets the i a5. - * - * @param text the text - * @return the i a5 - * @throws EncodingFormatException the encoding format exception - */ - public static String getIA5(String text) throws EncodingFormatException { - - if (text == null || text.length() == 0) { - return null; - } - - for (int i = 0; i < text.length(); i++){ - int index = text.charAt(i); - if (index < 0 || index > 127) { - throw new EncodingFormatException("Wrong Characters in IA5 String encoding"); - } - } - - return text; - - } - - /** - * Gets the i a5 non num. - * - * @param text the text - * @return the i a5 non num - * @throws EncodingFormatException the encoding format exception - */ - public static String getIA5NonNum(String text) throws EncodingFormatException { - - if (text == null || text.length() == 0) { - return null; - } - - for (int i = 0; i < text.length(); i++){ - int index = text.charAt(i); - if (index < 0 || index > 127) { - throw new EncodingFormatException("Wrong Characters in IA5 String encoding"); - } - } - - try { - Long.parseLong(text); - return null; - } catch (NumberFormatException e) { - return text; - } - - } - - /** - * Gets the restricted int. - * - * @param value the value - * @param min the min - * @param max the max - * @return the restricted int - * @throws EncodingFormatException the encoding format exception - */ - public static Long getRestrictedInt(int value, int min, int max) throws EncodingFormatException { - if (value == 0) return null; - - if (value < min || value > max) { - throw new EncodingFormatException("Integer value exceeds boundaries"); - } - return new Long(value); - } - - /** - * Gets the restricted int with default. - * - * @param value the value - * @param min the min - * @param max the max - * @param defaultValue the default value - * @return the restricted int with default - * @throws EncodingFormatException the encoding format exception - */ - public static Long getRestrictedIntWithDefault(int value, int min, int max, int defaultValue) throws EncodingFormatException { - if (value == defaultValue || value == 0) return null; - - if (value < min || value > max) { - throw new EncodingFormatException("Integer value exceeds boundaries"); - } - return new Long(value); - } - - - /** - * Gets the un restricted int. - * - * @param value the value - * @return the un restricted int - */ - public static Long getUnRestrictedInt(int value) { - if (value == 0) return null; - return new Long(value); - } - - /** - * Gets the un restricted int list. - * - * @param intList the int list - * @return the un restricted int list - */ - public static List getUnRestrictedIntList( Collection intList) { - if (intList == null || intList.isEmpty()) return null; - - List list = new ArrayList(); - - for (Integer i : intList){ - if (i != 0){ - list.add(i.longValue()); - } - } - - if (list.isEmpty()) return null; - return list; - } - - /** - * Gets the restricted int list. - * - * @param intList the int list - * @param min the min - * @param max the max - * @return the restricted int list - * @throws EncodingFormatException the encoding format exception - */ - public static List getRestrictedIntList( Collection intList, int min, int max) throws EncodingFormatException { - if (intList == null || intList.isEmpty()) return null; - - ArrayList list = new ArrayList(); - - for (Integer i : intList){ - if (i != 0){ - - if (i < min || i > max){ - throw new EncodingFormatException("Integer value exceeds boundaries"); - } - - list.add(i); - } - } - - if (list.isEmpty()) return null; - return list; - } - - /** - * Encode restricted integer collection. - * - * @param collection the collection - * @param min the min - * @param max the max - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - public static List encodeRestrictedIntegerCollection(Collection collection, int min, int max) throws EncodingFormatException { - - if ( collection == null || collection.isEmpty()) { - return null; - } - - List list = new ArrayList(); - for (Integer item : collection){ - Long listItem = getRestrictedInt(item, min, max); - if (listItem != null){ - list.add(listItem); - } - } - if (list.isEmpty()){ - return null; - } - return list; - - } - - /** - * Encode integer collection. - * - * @param collection the collection - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - public static SequenceOfStringUTF8 encodeStringCollection(Collection collection) throws EncodingFormatException { - - if ( collection == null || collection.isEmpty()) { - return null; - } - - SequenceOfStringUTF8 list = new SequenceOfStringUTF8(); - for (String item : collection){ - if (item.length() > 0){ - list.add(item); - } - } - if (list.isEmpty()){ - return null; - } - return list; - - } - - /** - * Encode integer collection. - * - * @param collection the collection - * @return the list - * @throws EncodingFormatException the encoding format exception - */ - public static List encodeIntegerCollection(Collection collection) throws EncodingFormatException { - - if ( collection == null || collection.isEmpty()) { - return null; - } - - List list = new ArrayList(); - for (Integer item : collection){ - if (item != null){ - list.add(item.longValue()); - } - } - if (list.isEmpty()){ - return null; - } - return list; - - } - - -} diff --git a/src/org/uic/barcode/ticket/api/utils/package.html b/src/org/uic/barcode/ticket/api/utils/package.html deleted file mode 100644 index a926c2d..0000000 --- a/src/org/uic/barcode/ticket/api/utils/package.html +++ /dev/null @@ -1,7 +0,0 @@ - - -Utilities - - Provides utilities for the asn.1 encoding and decoding of ticket data. - - \ No newline at end of file -- cgit v1.2.3