summaryrefslogtreecommitdiff
path: root/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentsListener.java
blob: 7a14629b2d817be3a90650b4462297c4ed1bb60a (plain)
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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
/**
 * Copyright (C) 2013 TomTom International B.V.
 * 
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */
package org.genivi.trafficincidentsservice;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

import org.genivi.common.RectangularArea;
import org.genivi.common.Version;

import org.genivi.iconset.IconDefinition;
import org.genivi.iconset.IconSet;
import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Traffic Incidents Listener</b></em>'.
 * <!-- end-user-doc -->
 *
 *
 * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getTrafficIncidentsListener()
 * @model
 * @generated
 */
public interface TrafficIncidentsListener extends EObject {
  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * This method is called as a response to getVersion().
	 * @param version The API version of this interface implemented by the service.
	 * <!-- end-model-doc -->
	 * @model
	 * @generated
	 */
  void getVersionReply(Version version);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * This method is called as a response to getTrafficIncidentIds().
	 * @param trafficIncidentIds The Ids of the requested traffic incidents.
	 * <!-- end-model-doc -->
	 * @model trafficIncidentIdsMany="true"
	 * @generated
	 */
  void getTrafficIncidentIdsReply(EList<Integer> trafficIncidentIds);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * This method is called as a response to getTrafficIncidentIdsInAreas().
	 * @param trafficIncidentIds The Ids of the requested traffic incidents.
	 * <!-- end-model-doc -->
	 * @model trafficIncidentIdsMany="true"
	 * @generated
	 */
  void getTrafficIncidentIdsInAreasReply(EList<Integer> trafficIncidentIds);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * This method is called as a response to getTrafficIncidents().
	 * @param trafficIncidents
	 *   The requested Traffic Incidents. This list may be shorter than the request list
	 *   as nothing is returned for Ids that don't exist (anymore).
	 * <!-- end-model-doc -->
	 * @model trafficIncidentsMany="true"
	 * @generated
	 */
  void getTrafficIncidentsReply(EList<TrafficIncident> trafficIncidents);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * This method is called as a response to getTrafficIncidentsFields().
	 * @param trafficIncidents
	 *   The requested Traffic Incidents, with only the requested fields filled in.
	 *   This list may be shorter than the request list as nothing is returned for
	 *   Ids that don't exist (anymore).
	 * <!-- end-model-doc -->
	 * @model trafficIncidentsMany="true"
	 * @generated
	 */
  void getTrafficIncidentsFieldsReply(EList<TrafficIncident> trafficIncidents);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * This method is called as a response to getTexts().
	 * @param texts
	 *   Text information per requested traffic incident.
	 *   The texts will be in the same order as the trafficIncidentIds in the request.
	 * <!-- end-model-doc -->
	 * @model textsMany="true"
	 * @generated
	 */
  void getTextsReply(EList<String> texts);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void addTrafficIncidentsStatusListenerReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void addFeedInformationListenerReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void addUpdateListenerReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void removeUpdateListenerReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void addAreasUpdateListenerReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void removeAreasUpdateListenerReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void setLanguageReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void setTimeFormatReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void setDateFormatReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void setLengthUnitReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void setWeightUnitReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void setApplicabilityReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void freeCategoryIdsReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * If a client has registered itself as a listener for any updates in the traffic incidents,
	 * this method is called if there are changes.
	 * <!-- end-model-doc -->
	 * @model unchangedTrafficIncidentIdsMany="true" changedTrafficIncidentIdsMany="true" newTrafficIncidentIdsMany="true" deletedTrafficIncidentIdsMany="true"
	 * @generated
	 */
  void updates(EList<Integer> unchangedTrafficIncidentIds, EList<Integer> changedTrafficIncidentIds, EList<Integer> newTrafficIncidentIds, EList<Integer> deletedTrafficIncidentIds);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * If a client has registered itself as a listener for updates in the traffic incidents in one or more area's
	 * (via addAreaUpdateListener() or addAreasUpdateListener()),
	 * this method is called if there are changes.
	 * @param areas The area's in which changes have taken place.
	 * <!-- end-model-doc -->
	 * @model areasMany="true"
	 * @generated
	 */
  void updatesInAreas(EList<RectangularArea> areas);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * This method is called as a response to getLanguage().
	 * @param languageCode The language.
	 * @param countryCode The country specific variant for the language.
	 * <!-- end-model-doc -->
	 * @model
	 * @generated
	 */
  void getLanguageReply(String languageCode, String countryCode);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * If a client has registered itself as a listener for changes in the Traffic Incidents status,
	 * this method is called upon changes in the Traffic Incidents status.
	 * The provided status information is the combined status of the available feeds in the system.
	 * Details of how the information is combined is given per parameter.
	 * @param trafficIncidentFeedStatus
	 *   The combined status of the Traffic Incident Feeds.
	 *   If all Feeds are UNAVAILABLE, the status is UNAVAILABLE.
	 *   Else, if any of the Feeds is CONNECTED, the status is CONNECTED.
	 *   Else, the status is DISCONNECTED (so there are Feeds available, but none of them is connected).
	 * @param trafficIncidentsStatus
	 *   The combined status of the Traffic Incidents.
	 *   If the status for all the Feeds is AVAILABLE, , the combined status is AVAILABLE.
	 *   Else, if the status for one of the Feeds is PARTLY_AVAILABLE, the combined status is PARTLY_AVAILABLE.
	 *   Else, the combined status is UNAVAILABLE (so there are no Traffic Incidents at all).
	 *   
	 *         
	 *   Meaning of the enum values at this level:
	 *   UNAVAILABLE: The are no incidents in the system, and currently they can also not be received.
	 *   PARTLY_AVAILABLE: There are or may be incidents in the system, but the set of incidents is probably not up to date.
	 *   This means that big changes are possible. Examples: Upon start-up, some incidents have already been received,
	 *   but there are more incidents to receive. If the user is looking at the map display, new incidents may suddenly appear.
	 *   When a connection is lost, the information stays valid for some time, but the information may no longer be fully up to date,
	 *   and at some point in time a lot of incidents may suddenly disappear because they are no longer valid.
	 *   AVAILABLE: The reception and handling of the incidents is stable, and as up to date as possible with respect to the used protocol(s).
	 *   It is however still possible that there are currently no Traffic Incidents.
	 * <!-- end-model-doc -->
	 * @model
	 * @generated
	 */
  void trafficIncidentsStatus(TrafficIncidentFeedStatus trafficIncidentFeedStatus, TrafficIncidentsStatus trafficIncidentsStatus);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * If a client has registered itself as a listener for changes in the Feed Information,
	 * this method is called upon changes in the Feed Information.
	 * @param feedsInformation The information per Traffic Incident Feed.
	 * <!-- end-model-doc -->
	 * @model feedsInformationMany="true"
	 * @generated
	 */
  void feedInformation(EList<FeedInformation> feedsInformation);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model categoryIdsMany="true"
	 * @generated
	 */
  void reserveCategoryIdsReply(EList<Integer> categoryIds);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model iconSetIdsMany="true"
	 * @generated
	 */
  void reserveIconSetIdsReply(EList<Integer> iconSetIds);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model iconSetsMany="true"
	 * @generated
	 */
  void getIconSetsReply(EList<IconSet> iconSets);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void addIconSetDefinitionsReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void removeIconSetDefinitionsReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void removeFeedInformationListenerReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void removeTrafficIncidentsStatusListenerReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model iconDefinitionsMany="true"
	 * @generated
	 */
  void getIconDefinitionsReply(EList<IconDefinition> iconDefinitions);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void addIconDefinitionsReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void removeIconDefinitionsReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model categoryDefinitionsMany="true"
	 * @generated
	 */
  void getCategoryDefinitionsReply(EList<CategoryDefinition> categoryDefinitions);

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void addCategoryDefinitionsReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void removeCategoryDefinitionsReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void freeIconSetIdsReply();

  /**
	 * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
  void getApplicabilityReply(String filterExpression);

} // TrafficIncidentsListener