summaryrefslogblamecommitdiffstats
path: root/src/org/uic/ticket/api/asn/omv1/FIPTicketData.java
blob: eac2ef3e9c8fa6734e8131fbee6ad0c926b3bb89 (plain) (tree)






































































































































































































































































                                                                                                         




                                                                          














                                                                                  



                                                                           







                                                                     

                                                            

















                                                                                   
/*
 *   This file was generated by openASN.1 - an open source ASN.1 toolkit for java
 *
 *   openASN.1 is Copyright (C) 2007 Clayton Hoss, Marc Weyland
 *
 *   openASN.1 is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU Lesser General Public License as
 *   published by the Free Software Foundation, either version 3 of
 *   the License, or (at your option) any later version.
 *
 *   openASN.1 is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 *   GNU Lesser General Public License for more details.
 *
 *   You should have received a copy of the GNU Lesser General Public License
 *   along with openASN.1. If not, see <http://www.gnu.org/licenses/>.
 *
 */
package org.uic.ticket.api.asn.omv1;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;

import net.gcdc.asn1.datatypes.Asn1BigInteger;
import net.gcdc.asn1.datatypes.Asn1Default;
import net.gcdc.asn1.datatypes.Asn1Optional;
import net.gcdc.asn1.datatypes.CharacterRestriction;
import net.gcdc.asn1.datatypes.IntRange;
import net.gcdc.asn1.datatypes.RestrictedString;
import net.gcdc.asn1.datatypesimpl.SequenceOfStringIA5;

public class FIPTicketData extends Object {
	public FIPTicketData() {
	}

	@RestrictedString(CharacterRestriction.IA5String)
	@Asn1Optional public String referenceIA5;

	@Asn1Optional public Asn1BigInteger referenceNum;

	@IntRange(minValue=1,maxValue=32000)
	@Asn1Optional public Long productOwnerNum;

	@RestrictedString(CharacterRestriction.IA5String)
	@Asn1Optional public String productOwnerIA5;

	@IntRange(minValue=1,maxValue=32000)
	@Asn1Optional public Long productIdNum;

	@RestrictedString(CharacterRestriction.IA5String)
	@Asn1Optional public String productIdIA5;

	@IntRange(minValue=-1,maxValue=700)
	@Asn1Optional public Long validFromDay;

	@IntRange(minValue=0,maxValue=370)
	@Asn1Optional public Long validUntilDay;

	@Asn1Optional public SequenceOfActivatedDays activatedDay;

	@Asn1Optional public SequenceOfCarrierNum carrierNum;

	@Asn1Optional public SequenceOfStringIA5 carrierIA5;

	@IntRange(minValue=1,maxValue=200)
	public Long numberOfTravelDays;

	public Boolean includesSupplements = false;

	@Asn1Default(value="second")
	@Asn1Optional public TravelClassType classCode;

	@Asn1Optional public ExtensionData extension;
	
	public String getReferenceIA5() {

		return this.referenceIA5;
	}

	public Asn1BigInteger getReferenceNum() {

		return this.referenceNum;
	}

	public Long getProductOwnerNum() {

		return this.productOwnerNum;
	}

	public String getProductOwnerIA5() {

		return this.productOwnerIA5;
	}

	public Long getProductIdNum() {

		return this.productIdNum;
	}

	public String getProductIdIA5() {

		return this.productIdIA5;
	}

	public Long getValidFromDay() {

		return this.validFromDay;
	}

	public Long getValidUntilDay() {

		return this.validUntilDay;
	}

	public List<Long> getActivatedDay() {

		return this.activatedDay;
	}

	public List<Long> getCarrierNum() {

		return this.carrierNum;
	}

	public List<String> getCarrierIA5() {

		return this.carrierIA5;
	}

	public Long getNumberOfTravelDays() {

		return this.numberOfTravelDays;
	}

	public Boolean getIncludesSupplements() {

		return this.includesSupplements;
	}

	public TravelClassType getClassCode() {
		if (classCode == null) return TravelClassType.second;		
		return this.classCode;
	}

	public ExtensionData getExtension() {

		return this.extension;
	}

	public void setReferenceIA5(String referenceIA5) {

		this.referenceIA5 = referenceIA5;
	}

	public void setReferenceNum(Asn1BigInteger referenceNum) {

		this.referenceNum = referenceNum;
	}

	public void setProductOwnerNum(Long productOwnerNum) {

		this.productOwnerNum = productOwnerNum;
	}

	public void setProductOwnerIA5(String productOwnerIA5) {

		this.productOwnerIA5 = productOwnerIA5;
	}

	public void setProductIdNum(Long productIdNum) {

		this.productIdNum = productIdNum;
	}

	public void setProductIdIA5(String productIdIA5) {

		this.productIdIA5 = productIdIA5;
	}

	public void setValidFromDay(Long validFromDay) {

		this.validFromDay = validFromDay;
	}

	public void setValidUntilDay(Long validUntilDay) {

		this.validUntilDay = validUntilDay;
	}

	public void setActivatedDay(SequenceOfActivatedDays activatedDay) {

		this.activatedDay = activatedDay;
	}

	public void setCarrierNum(SequenceOfCarrierNum carrierNum) {

		this.carrierNum = carrierNum;
	}

	public void setCarrierIA5(SequenceOfStringIA5 carrierIA5) {

		this.carrierIA5 = carrierIA5;
	}

	public void setNumberOfTravelDays(Long numberOfTravelDays) {

		this.numberOfTravelDays = numberOfTravelDays;
	}

	public void setIncludesSupplements(Boolean includesSupplements) {

		this.includesSupplements = includesSupplements;
	}

	public void setClassCode(TravelClassType classCode) {
		this.classCode = classCode;
	}

	public void setExtension(ExtensionData extension) {

		this.extension = extension;
	}
	
	public void setValidityDates (Date fromDate, Date untilDate, Date issuingDate){
		
		if (issuingDate == null || fromDate == null) return;
				
		this.validFromDay = DateTimeUtils.getDateDifference(issuingDate,fromDate);
		
		if (untilDate != null){
			this.validUntilDay = DateTimeUtils.getDateDifference(fromDate, untilDate);
		}

	}
	
	public Date getValidFromDate(Date issuingDate){
		
		return DateTimeUtils.getDate(issuingDate, this.validFromDay,null);
		
	}
	
	public Date getValidUntilDate(Date issuingDate){
		
		if (issuingDate == null) return null;
		
		if (this.validFromDay == null) {
			this.validFromDay = 0L;
		}
		
		if (this.validUntilDay == null) {
			return null;
		}		
		
		
		return DateTimeUtils.getDate(issuingDate, this.validFromDay + this.validUntilDay, null);
		
	}
	
	public void setActivatedDays(Collection<Date> dates, Date issuingDate){
		
		if (this.activatedDay != null) {
			this.activatedDay.clear();
		} else {
			this.activatedDay= new SequenceOfActivatedDays();
		}
		
		if (dates != null && !dates.isEmpty()) {
			
			for (Date day : dates) {
				this.addActivatedDay(issuingDate, day);
			}
			
		}
		
	}
	
	public void addActivatedDay(Date issuingDate, Date day){
		
		Long dayDiff = DateTimeUtils.getDateDifference(issuingDate, day);
		
		if (this.activatedDay == null) {
			this.activatedDay = new SequenceOfActivatedDays();
		}
		
		if (dayDiff != null) {
			this.activatedDay.add(dayDiff);
		}
		
	}
	
	public Collection<Date> getActivatedDays(Date issuingDate) {
		
		if (this.activatedDay == null) return null;
		
		ArrayList<Date> dates = new ArrayList<Date>();
		
		for (Long diff: this.getActivatedDay()) {
			
			Date day = DateTimeUtils.getDate(issuingDate, diff, null);
			
			if (day != null) {
				dates.add(day);
			}
			
		}
				
		return dates;
		
	}	
	
	
}