summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/uic/barcode/ticket/api/spec/IUicRailTicket.java
blob: a361a2659b3cf5087140568d2d124b648d218299 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
/*
 * 
 */
package org.uic.barcode.ticket.api.spec;

import java.util.Collection;


/**
 * The Interface IUicRailTicket.
 * 
 * This class provides the top level of the data for a document to be encoded 
 * according to the: 
 * 		UIC standard for ticket control data in asn.1 / PER unaligned encoding.
 * 		version 1.0
 * 
 * The data contains:
 *   --            -issuer informations
 *   --            -the details of the transport document
 *   --            -informations required for the control process
 *   --            -informations on the travelers independent from the transport document
 *   --            -proprietary extensions
 * 
 */
public interface IUicRailTicket {
		
	/**
	 * Gets the issuer details.
	 *
	 * @return the issuer details
	 */
	public IIssuingDetail getIssuerDetails();  

	/**
	 * Gets the traveler details.
	 *
	 * @return the traveler details
	 */
	public ITravelerDetail getTravelerDetails();  
	
	/**
	 * Gets the traveler details.
	 *
	 * @return the traveler details
	 */
	public IControlDetail getControlDetails();  	
	
	/**
	 * Gets the extensions.
	 *
	 * @return the extensions
	 */
	public Collection<IExtension> getExtensions();

	/**
	 * Adds an extension
	 *
	 * @param extension the extension
	 */
	public void addExtension(IExtension extension);

	/**
	 * Sets the issuer details.
	 *
	 * @param issuerDetails the new issuer details
	 */
	public void setIssuerDetails(IIssuingDetail issuerDetails);

	/**
	 * Sets the traveler details.
	 *
	 * @param travelerDetails the new traveler details
	 */
	public void setTravelerDetails(ITravelerDetail travelerDetails);

	/**
	 * Sets the control details
	 *
	 * @param controlDetails the new control details
	 */
	public void setControlDetails(IControlDetail controlDetails);
	
		
	/**
	 * Gets the travel document data.
	 *
	 * @return the travel document data
	 */
	public Collection<IDocumentData> getDocumentData();
	
	/**
	 * Adds the reservation.
	 *         -- more than one document to be used on bilateral agreement only 
	 *
	 * @param document the reservation
	 */
	public void addReservation(IReservation document);
	
	/**
	 * Adds the open ticket.
	 *         -- more than one document to be used on bilateral agreement only 	 
	 *
	 * @param document the open ticket
	 */
	public void addOpenTicket(IOpenTicket document);

	/**
	 * Adds the car carriage reservation.
	 *
	 * @param document the car carriage reservation
	 */
	public void addCarCarriageReservation(ICarCarriageReservation document);
	
	/**
	 * Adds the rail pass.
	 *         -- more than one document to be used on bilateral agreement only  
	 *
	 * @param document the rail pass
	 */
	public void addPass(IPass document);
	
	/**
	 * Adds the voucher.
	 *
	 * @param document the voucher
	 */
	public void addVoucher(IVoucher document);
	
	/**
	 * Adds the customer card.
	 *         -- more than one document to be used on bilateral agreement only  
	 *
	 * @param document the customer card
	 */
	public void addCustomerCard(ICustomerCard document);
	
	/**
	 * Adds the group ticket counter mark.
	 *         -- more than one document to be used on bilateral agreement only  
	 *
	 * @param document the group ticket counter mark
	 */
	public void addCounterMark(ICounterMark document);
	
	/**
	 * Adds the parking ground reservation
	 *         -- more than one document to be used on bilateral agreement only  
	 *
	 * @param document the parking ground reservation
	 */
	public void addParkingGround(IParkingGround document);
	
	/**
	 * Adds the FIP ticket.
	 *
	 * @param document the FIP ticket
	 */
	public void addFipTicket (IFipTicket document);
	
	/**
	 * Adds the station passage allowance.
	 * 	       -- more than one document to be used on bilateral agreement only 
	 *
	 * @param document the station passage allowance
	 */
	public void addStationPassage(IStationPassage document);
	
	/**
	 * Adds the delay confirmation
	 * 	       -- more than one document to be used on bilateral agreement only 
	 *
	 * @param document the delay confirmation
	 */
	public void addDelayConfirmation(IDelayConfirmation document);	
	
	/**
	 * Adds a proprietary document.
	 *   if not bilaterally agreed otherwise proprietary extensions must be ignored
	 *
	 * @param document the proprietary document 
	 */
	public void addDocumentExtension(IDocumentExtension document);
	
}