@regulaforensics/cordova-plugin-document-reader-api 5.4.0 → 5.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,918 @@
1
+ #import <Foundation/Foundation.h>
2
+ #import "RGLWJSONConstructor.h"
3
+
4
+ @implementation RGLWJSONConstructor
5
+
6
+ +(NSString*)dictToString:(NSMutableDictionary*)input {
7
+ return [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:input options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding];
8
+ }
9
+
10
+ +(NSMutableDictionary* _Nonnull)generateNSDictionary:(NSDictionary<NSNumber*, NSNumber*>* _Nullable)input {
11
+ NSMutableDictionary *result = [NSMutableDictionary new];
12
+ if(input == nil) return result;
13
+
14
+ for(NSNumber* key in input)
15
+ result[[key stringValue]] = input[key];
16
+
17
+ return result;
18
+ }
19
+
20
+ +(RGLPKDCertificate*)RGLPKDCertificateFromJson:(NSDictionary*)input {
21
+ NSInteger type = [[input valueForKey:@"resourceType"] integerValue];
22
+ NSData* binaryData = [[NSData alloc] initWithBase64EncodedString:[input objectForKey:@"binaryData"] options:0];
23
+ NSData* privateKey = [input objectForKey:@"privateKey"] != nil ? [[NSData alloc] initWithBase64EncodedString:[input objectForKey:@"privateKey"] options:0] : nil;
24
+
25
+ return [[RGLPKDCertificate alloc] initWithBinaryData:binaryData resourceType:type privateKey:privateKey];
26
+ }
27
+
28
+ +(NSMutableDictionary*)generateCGPoint:(CGPoint)input {
29
+ NSMutableDictionary *result = [NSMutableDictionary new];
30
+
31
+ result[@"x"] = [NSNumber numberWithFloat:input.x];
32
+ result[@"y"] = [NSNumber numberWithFloat:input.y];
33
+
34
+ return result;
35
+ }
36
+
37
+ +(NSMutableDictionary*)generateCGRect:(CGRect)input {
38
+ NSMutableDictionary *result = [NSMutableDictionary new];
39
+
40
+ result[@"top"] = @(input.origin.y);
41
+ result[@"left"] = @(input.origin.x);
42
+ result[@"bottom"] = @(input.origin.y+input.size.height);
43
+ result[@"right"] = @(input.origin.x+input.size.width);
44
+
45
+ return result;
46
+ }
47
+
48
+ +(NSMutableArray*)generateNSArrayCGRect:(NSArray<NSValue*>* _Nonnull)input {
49
+ NSMutableArray *result = [NSMutableArray new];
50
+ for(NSValue* rect in input)
51
+ if(rect != nil)
52
+ [result addObject:[self generateCGRect:[rect CGRectValue]]];
53
+ return result;
54
+ }
55
+
56
+ +(NSMutableDictionary*)generateVideoEncoderCompletion:(NSURL*)input :(NSError*)error {
57
+ NSMutableDictionary *result = [NSMutableDictionary new];
58
+
59
+ result[@"filePath"] = input.absoluteString;
60
+ result[@"error"] = [self generateNSError:error];
61
+
62
+ return result;
63
+ }
64
+
65
+ +(NSInteger)generateDocReaderAction:(RGLDocReaderAction)input {
66
+ NSInteger result = 0;
67
+ switch (input) {
68
+ case RGLDocReaderActionComplete:
69
+ result = 1;
70
+ break;
71
+ case RGLDocReaderActionProcess:
72
+ result = 0;
73
+ break;
74
+ case RGLDocReaderActionMorePagesAvailable:
75
+ result = 8;
76
+ break;
77
+ case RGLDocReaderActionCancel:
78
+ result = 2;
79
+ break;
80
+ case RGLDocReaderActionError:
81
+ result = 3;
82
+ break;
83
+ default:
84
+ break;
85
+ }
86
+
87
+ return result;
88
+ }
89
+
90
+ +(NSInteger)generateRFIDCompleteAction:(RGLRFIDCompleteAction)input {
91
+ NSInteger result = 0;
92
+ switch (input) {
93
+ case RGLRFIDCompleteActionComplete:
94
+ result = 10;
95
+ break;
96
+ case RGLRFIDCompleteActionError:
97
+ result = 3;
98
+ break;
99
+ case RGLRFIDCompleteActionCancel:
100
+ result = 2;
101
+ break;
102
+ case RGLRFIDCompleteActionSessionRestarted:
103
+ result = 1;
104
+ break;
105
+ default:
106
+ break;
107
+ }
108
+
109
+ return result;
110
+ }
111
+
112
+ +(NSInteger)generateRFIDNotificationAction:(RGLRFIDNotificationAction)input {
113
+ return 5;
114
+ }
115
+
116
+ +(NSMutableDictionary*)generateCompletion:(NSInteger)action :(RGLDocumentReaderResults*)results :(NSError*)error :(RGLRFIDNotify*)notify {
117
+ NSMutableDictionary *result = [NSMutableDictionary new];
118
+
119
+ switch (action) {
120
+ case 0:
121
+ break;
122
+ case 1:
123
+ result[@"results"] = [self generateRGLDocumentReaderResults:results];
124
+ break;
125
+ case 2:
126
+ result[@"results"] = [self generateRGLDocumentReaderResults:results];
127
+ break;
128
+ case 3:
129
+ result[@"results"] = [self generateRGLDocumentReaderResults:results];
130
+ break;
131
+ case 5:
132
+ result[@"results"] = [self generateResultsWithNotification:[self generateRGLRFIDNotify:notify]];
133
+ break;
134
+ case 6:
135
+ result[@"results"] = [self generateResultsWithNotification:[self generateRGLRFIDNotify:notify]];
136
+ break;
137
+ case 8:
138
+ result[@"results"] = [self generateRGLDocumentReaderResults:results];
139
+ break;
140
+ case 10:
141
+ result[@"results"] = [self generateResultsWithRFID :results :1];
142
+ action = 1;
143
+ break;
144
+ default:
145
+ break;
146
+ }
147
+
148
+ result[@"action"] = [NSNumber numberWithInteger:action];
149
+ if(error != nil)
150
+ result[@"error"] = [self generateNSError:error];
151
+
152
+ return result;
153
+ }
154
+
155
+ +(NSMutableDictionary*)generateResultsWithNotification:(NSMutableDictionary*)input {
156
+ NSMutableDictionary *result = [NSMutableDictionary new];
157
+
158
+ result[@"documentReaderNotification"] = input;
159
+
160
+ return result;
161
+ }
162
+
163
+ +(NSMutableDictionary*)generateResultsWithRFID:(RGLDocumentReaderResults*)results :(NSInteger)input {
164
+ NSMutableDictionary *result = [self generateRGLDocumentReaderResults:results];
165
+
166
+ result[@"rfidResult"] = [NSNumber numberWithInteger:input];
167
+
168
+ return result;
169
+ }
170
+
171
+ +(NSString*)generateNSData:(NSData *)input {
172
+ return [NSKeyedUnarchiver unarchiveObjectWithData:input];
173
+ }
174
+
175
+ +(NSMutableDictionary* _Nonnull)generatePACertificateCompletion:(NSData *)serialNumber :(RGLPAResourcesIssuer *)issuer{
176
+ NSMutableDictionary *result = [NSMutableDictionary new];
177
+
178
+ result[@"serialNumber"] = [self generateNSData:serialNumber];
179
+ result[@"issuer"] = [self generateRGLPAResourcesIssuer:issuer];
180
+
181
+ return result;
182
+ }
183
+
184
+ // To JSON
185
+
186
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderResults:(RGLDocumentReaderResults* _Nullable)input {
187
+ NSMutableDictionary *result = [NSMutableDictionary new];
188
+ if(input == nil) return result;
189
+
190
+ if(input.documentType != nil){
191
+ NSMutableArray *array = [NSMutableArray new];
192
+ for(RGLDocumentReaderDocumentType* item in input.documentType)
193
+ if(item != nil)
194
+ [array addObject:[self generateRGLDocumentReaderDocumentType:item]];
195
+ result[@"documentType"] = array;
196
+ }
197
+ result[@"textResult"] = [self generateRGLDocumentReaderTextResult:input.textResult];
198
+ result[@"graphicResult"] = [self generateRGLDocumentReaderGraphicResult:input.graphicResult];
199
+ if(input.documentPosition != nil){
200
+ NSMutableArray *array = [NSMutableArray new];
201
+ for(RGLPosition* item in input.documentPosition)
202
+ if(item != nil)
203
+ [array addObject:[self generateRGLPosition:item]];
204
+ result[@"documentPosition"] = array;
205
+ }
206
+ if(input.barcodePosition != nil){
207
+ NSMutableArray *array = [NSMutableArray new];
208
+ for(RGLPosition* item in input.barcodePosition)
209
+ if(item != nil)
210
+ [array addObject:[self generateRGLPosition:item]];
211
+ result[@"barcodePosition"] = array;
212
+ }
213
+ if(input.mrzPosition != nil){
214
+ NSMutableArray *array = [NSMutableArray new];
215
+ for(RGLPosition* item in input.mrzPosition)
216
+ if(item != nil)
217
+ [array addObject:[self generateRGLPosition:item]];
218
+ result[@"mrzPosition"] = array;
219
+ }
220
+ if(input.imageQualityGroup != nil){
221
+ NSMutableArray *array = [NSMutableArray new];
222
+ for(RGLImageQualityGroup* item in input.imageQualityGroup)
223
+ if(item != nil)
224
+ [array addObject:[self generateRGLImageQualityGroup:item]];
225
+ result[@"imageQuality"] = array;
226
+ }
227
+ result[@"overallResult"] = @(input.overallResult);
228
+ result[@"authenticityResult"] = [self generateRGLDocumentReaderAuthenticityResult:input.authenticityResults];
229
+ result[@"rfidSessionData"] = [self generateRGLRFIDSessionData:input.rfidSessionData];
230
+ result[@"chipPage"] = @(input.chipPage);
231
+ result[@"resolutionType"] = @(input.resolutionType);
232
+ result[@"barcodeResult"] = [self generateRGLDocumentReaderBarcodeResult:input.barcodeResult];
233
+ result[@"processingFinishedStatus"] = @(input.processingFinishedStatus);
234
+ result[@"morePagesAvailable"] = @(input.morePagesAvailable);
235
+ result[@"elapsedTime"] = @(input.elapsedTime);
236
+ result[@"elapsedTimeRFID"] = @(input.elapsedTimeRFID);
237
+ result[@"rawResult"] = input.rawResult;
238
+
239
+ return result;
240
+ }
241
+
242
+ +(NSMutableDictionary* _Nonnull)generateRGLPosition:(RGLPosition* _Nullable)input {
243
+ NSMutableDictionary *result = [NSMutableDictionary new];
244
+ if(input == nil) return result;
245
+
246
+ result[@"width"] = @(input.size.width);
247
+ result[@"height"] = @(input.size.height);
248
+ result[@"center"] = [self generateCGPoint:input.center];
249
+ result[@"leftTop"] = [self generateCGPoint:input.leftTop];
250
+ result[@"leftBottom"] = [self generateCGPoint:input.leftBottom];
251
+ result[@"rightTop"] = [self generateCGPoint:input.rightTop];
252
+ result[@"rightBottom"] = [self generateCGPoint:input.rightBottom];
253
+ result[@"angle"] = @(input.angle);
254
+ result[@"perspectiveTr"] = @(input.perspectiveTr);
255
+ result[@"objArea"] = @(input.objArea);
256
+ result[@"objIntAngleDev"] = @(input.objIntAngleDev);
257
+ result[@"resultStatus"] = @(input.resultStatus);
258
+ result[@"docFormat"] = @(input.docFormat);
259
+ result[@"pageIndex"] = @(input.pageIndex);
260
+ result[@"dpi"] = @(input.dpi);
261
+ result[@"inverse"] = @(input.inverse);
262
+
263
+ return result;
264
+ }
265
+
266
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderBarcodeResult:(RGLDocumentReaderBarcodeResult* _Nullable)input {
267
+ NSMutableDictionary *result = [NSMutableDictionary new];
268
+ if(input == nil) return result;
269
+
270
+ if(input.fields != nil){
271
+ NSMutableArray *array = [NSMutableArray new];
272
+ for(RGLDocumentReaderBarcodeField* item in input.fields)
273
+ if(item != nil)
274
+ [array addObject:[self generateRGLDocumentReaderBarcodeField:item]];
275
+ result[@"fields"] = array;
276
+ }
277
+
278
+ return result;
279
+ }
280
+
281
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderBarcodeField:(RGLDocumentReaderBarcodeField* _Nullable)input {
282
+ NSMutableDictionary *result = [NSMutableDictionary new];
283
+ if(input == nil) return result;
284
+
285
+ result[@"barcodeType"] = @(input.barcodeType);
286
+ result[@"status"] = @(input.status);
287
+ result[@"pdf417Info"] = [self generateRGLPDF417Info:input.pdf417Info];
288
+ result[@"data"] = [NSKeyedUnarchiver unarchiveObjectWithData:input.data];
289
+ result[@"pageIndex"] = @(input.pageIndex);
290
+
291
+ return result;
292
+ }
293
+
294
+ +(NSMutableDictionary* _Nonnull)generateRGLPDF417Info:(RGLPDF417Info* _Nullable)input {
295
+ NSMutableDictionary *result = [NSMutableDictionary new];
296
+ if(input == nil) return result;
297
+
298
+ result[@"errorLevel"] = @(input.errorLevel);
299
+ result[@"columns"] = @(input.columns);
300
+ result[@"rows"] = @(input.rows);
301
+
302
+ return result;
303
+ }
304
+
305
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderAuthenticityResult:(RGLDocumentReaderAuthenticityResult* _Nullable)input {
306
+ NSMutableDictionary *result = [NSMutableDictionary new];
307
+ if(input == nil) return result;
308
+
309
+ result[@"status"] = @(input.status);
310
+ if(input.checks != nil){
311
+ NSMutableArray *array = [NSMutableArray new];
312
+ for(RGLAuthenticityCheck* item in input.checks)
313
+ if(item != nil)
314
+ [array addObject:[self generateRGLAuthenticityCheck:item]];
315
+ result[@"checks"] = array;
316
+ }
317
+
318
+ return result;
319
+ }
320
+
321
+ +(NSMutableDictionary* _Nonnull)generateRGLAuthenticityCheck:(RGLAuthenticityCheck* _Nullable)input {
322
+ NSMutableDictionary *result = [NSMutableDictionary new];
323
+ if(input == nil) return result;
324
+
325
+ result[@"type"] = @(input.type);
326
+ result[@"typeName"] = input.typeName;
327
+ result[@"status"] = @(input.status);
328
+ if(input.elements != nil){
329
+ NSMutableArray *array = [NSMutableArray new];
330
+ for(RGLAuthenticityElement* item in input.elements)
331
+ if(item != nil)
332
+ [array addObject:[self generateRGLAuthenticityElement:item]];
333
+ result[@"elements"] = array;
334
+ }
335
+ result[@"pageIndex"] = @(input.pageIndex);
336
+
337
+ return result;
338
+ }
339
+
340
+ +(NSMutableDictionary* _Nonnull)generateRGLAuthenticityElement:(RGLAuthenticityElement* _Nullable)input {
341
+ NSMutableDictionary *result = [NSMutableDictionary new];
342
+ if(input == nil) return result;
343
+
344
+ result[@"status"] = @(input.status);
345
+ result[@"elementType"] = @(input.elementType);
346
+ result[@"elementTypeName"] = input.elementTypeName;
347
+ result[@"elementDiagnose"] = @(input.elementDiagnose);
348
+ result[@"elementDiagnoseName"] = input.elementDiagnoseName;
349
+
350
+ return result;
351
+ }
352
+
353
+ +(NSMutableDictionary* _Nonnull)generateRGLImageQualityGroup:(RGLImageQualityGroup* _Nullable)input {
354
+ NSMutableDictionary *result = [NSMutableDictionary new];
355
+ if(input == nil) return result;
356
+
357
+ result[@"count"] = @(input.count);
358
+ result[@"result"] = @(input.result);
359
+ if(input.imageQualityList != nil){
360
+ NSMutableArray *array = [NSMutableArray new];
361
+ for(RGLImageQuality* item in input.imageQualityList)
362
+ if(item != nil)
363
+ [array addObject:[self generateRGLImageQuality:item]];
364
+ result[@"imageQualityList"] = array;
365
+ }
366
+
367
+ return result;
368
+ }
369
+
370
+ +(NSMutableDictionary* _Nonnull)generateRGLImageQuality:(RGLImageQuality* _Nullable)input {
371
+ NSMutableDictionary *result = [NSMutableDictionary new];
372
+ if(input == nil) return result;
373
+
374
+ result[@"type"] = @(input.type);
375
+ result[@"result"] = @(input.result);
376
+ result[@"featureType"] = @(input.featureType);
377
+ result[@"boundRects"] = [self generateNSArrayCGRect:input.boundRects];
378
+
379
+ return result;
380
+ }
381
+
382
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderGraphicResult:(RGLDocumentReaderGraphicResult* _Nullable)input {
383
+ NSMutableDictionary *result = [NSMutableDictionary new];
384
+ if(input == nil) return result;
385
+
386
+ if(input.fields != nil){
387
+ NSMutableArray *array = [NSMutableArray new];
388
+ for(RGLDocumentReaderGraphicField* item in input.fields)
389
+ if(item != nil)
390
+ [array addObject:[self generateRGLDocumentReaderGraphicField:item]];
391
+ result[@"fields"] = array;
392
+ }
393
+
394
+ return result;
395
+ }
396
+
397
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderGraphicField:(RGLDocumentReaderGraphicField* _Nullable)input {
398
+ NSMutableDictionary *result = [NSMutableDictionary new];
399
+ if(input == nil) return result;
400
+
401
+ result[@"sourceType"] = @(input.sourceType);
402
+ result[@"fieldType"] = @(input.fieldType);
403
+ result[@"fieldName"] = input.fieldName;
404
+ result[@"fieldRect"] = [self generateCGRect:input.boundRect];
405
+ result[@"value"] = [UIImageJPEGRepresentation(input.value, 1.0) base64EncodedStringWithOptions:0];
406
+ result[@"lightType"] = @(input.lightType);
407
+ result[@"lightName"] = input.lightName;
408
+ result[@"pageIndex"] = @(input.pageIndex);
409
+
410
+ return result;
411
+ }
412
+
413
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderTextResult:(RGLDocumentReaderTextResult* _Nullable)input {
414
+ NSMutableDictionary *result = [NSMutableDictionary new];
415
+ if(input == nil) return result;
416
+
417
+ if(input.fields != nil){
418
+ NSMutableArray *array = [NSMutableArray new];
419
+ for(RGLDocumentReaderTextField* item in input.fields)
420
+ if(item != nil)
421
+ [array addObject:[self generateRGLDocumentReaderTextField:item]];
422
+ result[@"fields"] = array;
423
+ }
424
+ result[@"status"] = @(input.status);
425
+
426
+ return result;
427
+ }
428
+
429
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderTextField:(RGLDocumentReaderTextField* _Nullable)input {
430
+ NSMutableDictionary *result = [NSMutableDictionary new];
431
+ if(input == nil) return result;
432
+
433
+ result[@"fieldType"] = @(input.fieldType);
434
+ result[@"fieldName"] = input.fieldName;
435
+ result[@"lcid"] = @(input.lcid);
436
+ result[@"lcidName"] = [RGLDocumentReaderTextField lcidName:input.lcid];
437
+ if(input.values != nil){
438
+ NSMutableArray *array = [NSMutableArray new];
439
+ for(RGLDocumentReaderValue* item in input.values)
440
+ if(item != nil)
441
+ [array addObject:[self generateRGLDocumentReaderValue:item]];
442
+ result[@"values"] = array;
443
+ }
444
+ result[@"status"] = @(input.status);
445
+ result[@"value"] = [self generateRGLDocumentReaderValue:[input getValue]];
446
+
447
+ return result;
448
+ }
449
+
450
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderValue:(RGLDocumentReaderValue* _Nullable)input {
451
+ NSMutableDictionary *result = [NSMutableDictionary new];
452
+ if(input == nil) return result;
453
+
454
+ result[@"sourceType"] = @(input.sourceType);
455
+ result[@"value"] = input.value;
456
+ result[@"originalValue"] = input.originalValue;
457
+ result[@"boundRect"] = [self generateCGRect:input.boundRect];
458
+ result[@"validity"] = @(input.validity);
459
+ result[@"comparison"] = [self generateNSDictionary:input.comparison];
460
+ result[@"pageIndex"] = @(input.pageIndex);
461
+ result[@"probability"] = @(input.probability);
462
+
463
+ return result;
464
+ }
465
+
466
+ +(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderDocumentType:(RGLDocumentReaderDocumentType* _Nullable)input {
467
+ NSMutableDictionary *result = [NSMutableDictionary new];
468
+ if(input == nil) return result;
469
+
470
+ result[@"name"] = input.name;
471
+ result[@"documentID"] = @(input.documentID);
472
+ result[@"ICAOCode"] = input.ICAOCode;
473
+ if(input.FDSID != nil){
474
+ NSMutableArray *array = [NSMutableArray new];
475
+ for(NSNumber* item in input.FDSID)
476
+ if(item != nil)
477
+ [array addObject:item];
478
+ result[@"FDSID"] = array;
479
+ }
480
+ result[@"dType"] = @(input.dType);
481
+ result[@"dFormat"] = @(input.dFormat);
482
+ result[@"dMRZ"] = @(input.dMRZ);
483
+ result[@"dDescription"] = input.dDescription;
484
+ result[@"dYear"] = input.dYear;
485
+ result[@"dCountryName"] = input.dCountryName;
486
+ result[@"pageIndex"] = @(input.pageIndex);
487
+
488
+ return result;
489
+ }
490
+
491
+ +(NSMutableDictionary* _Nonnull)generateRGLScenario:(RGLScenario* _Nullable)input {
492
+ NSMutableDictionary *result = [NSMutableDictionary new];
493
+ if(input == nil) return result;
494
+
495
+ result[@"name"] = input.identifier;
496
+ result[@"frame"] = @(input.frame);
497
+ result[@"frameKWHLandscape"] = @(input.frameKWHLandscape);
498
+ result[@"frameKWHPortrait"] = @(input.frameKWHPortrait);
499
+ result[@"frameKWHDoublePageSpreadPortrait"] = @(input.frameKWHDoublePageSpreadPortrait);
500
+ result[@"frameKWHDoublePageSpreadLandscape"] = @(input.frameKWHDoublePageSpreadLandscape);
501
+ result[@"description"] = input.scenarioDescription;
502
+ result[@"barcodeExt"] = @(input.barcodeExt);
503
+ result[@"faceExt"] = @(input.faceExt);
504
+ result[@"multiPageOff"] = @(input.multiPageOff);
505
+ result[@"seriesProcessMode"] = @(input.seriesProcessMode);
506
+ result[@"caption"] = input.caption;
507
+ result[@"uvTorch"] = @(input.uvTorch);
508
+ result[@"frameOrientation"] = @(input.frameOrientation);
509
+ result[@"manualCrop"] = @(input.manualCrop);
510
+
511
+ return result;
512
+ }
513
+
514
+ +(NSMutableDictionary* _Nonnull)generateRGLRFIDSessionData:(RGLRFIDSessionData* _Nullable)input {
515
+ NSMutableDictionary *result = [NSMutableDictionary new];
516
+ if(input == nil) return result;
517
+
518
+ if(input.accessControls != nil){
519
+ NSMutableArray *array = [NSMutableArray new];
520
+ for(RGLAccessControlProcedureType* item in input.accessControls)
521
+ if(item != nil)
522
+ [array addObject:[self generateRGLAccessControlProcedureType:item]];
523
+ result[@"accessControls"] = array;
524
+ }
525
+ if(input.applications != nil){
526
+ NSMutableArray *array = [NSMutableArray new];
527
+ for(RGLApplication* item in input.applications)
528
+ if(item != nil)
529
+ [array addObject:[self generateRGLApplication:item]];
530
+ result[@"applications"] = array;
531
+ }
532
+ if(input.securityObjects != nil){
533
+ NSMutableArray *array = [NSMutableArray new];
534
+ for(RGLSecurityObject* item in input.securityObjects)
535
+ if(item != nil)
536
+ [array addObject:[self generateRGLSecurityObject:item]];
537
+ result[@"securityObjects"] = array;
538
+ }
539
+ result[@"cardProperties"] = [self generateRGLCardProperties:input.cardProperties];
540
+ result[@"totalBytesReceived"] = @(input.totalBytesReceived);
541
+ result[@"totalBytesSent"] = @(input.totalBytesSent);
542
+ result[@"status"] = @(input.status);
543
+ result[@"extLeSupport"] = @(input.extLeSupport);
544
+ result[@"processTime"] = @(input.processTime);
545
+ result[@"sessionDataStatus"] = [self generateRGLRFIDSessionDataStatus:input.sessionDataStatus];
546
+
547
+ return result;
548
+ }
549
+
550
+ +(NSMutableDictionary* _Nonnull)generateRGLCardProperties:(RGLCardProperties* _Nullable)input {
551
+ NSMutableDictionary *result = [NSMutableDictionary new];
552
+ if(input == nil) return result;
553
+
554
+ result[@"aTQA"] = @(input.aTQA);
555
+ result[@"aTQB"] = input.aTQB;
556
+ result[@"aTR"] = input.aTR;
557
+ result[@"baudrate1"] = input.baudrate1;
558
+ result[@"baudrate2"] = input.baudrate2;
559
+ result[@"bitRateR"] = @(input.bitRateR);
560
+ result[@"bitRateS"] = @(input.bitRateS);
561
+ result[@"chipTypeA"] = @(input.chipTypeA);
562
+ result[@"mifareMemory"] = @(input.mifareMemory);
563
+ result[@"rfidType"] = @(input.rfidType);
564
+ result[@"sAK"] = @(input.sAK);
565
+ result[@"support4"] = @(input.support4);
566
+ result[@"supportMifare"] = @(input.supportMifare);
567
+ result[@"uID"] = input.uID;
568
+
569
+ return result;
570
+ }
571
+
572
+ +(NSMutableDictionary* _Nonnull)generateRGLRFIDSessionDataStatus:(RGLRFIDSessionDataStatus* _Nullable)input {
573
+ NSMutableDictionary *result = [NSMutableDictionary new];
574
+ if(input == nil) return result;
575
+
576
+ result[@"AA"] = @(input.AA);
577
+ result[@"BAC"] = @(input.BAC);
578
+ result[@"CA"] = @(input.CA);
579
+ result[@"PA"] = @(input.PA);
580
+ result[@"PACE"] = @(input.PACE);
581
+ result[@"TA"] = @(input.TA);
582
+ result[@"overallStatus"] = @(input.overallStatus);
583
+
584
+ return result;
585
+ }
586
+
587
+ +(NSMutableDictionary* _Nonnull)generateRGLAccessControlProcedureType:(RGLAccessControlProcedureType* _Nullable)input {
588
+ NSMutableDictionary *result = [NSMutableDictionary new];
589
+ if(input == nil) return result;
590
+
591
+ result[@"activeOptionIdx"] = @(input.activeOptionIdx);
592
+ if(input.notifications != nil){
593
+ NSMutableArray *array = [NSMutableArray new];
594
+ for(NSNumber* item in input.notifications)
595
+ if(item != nil)
596
+ [array addObject:item];
597
+ result[@"notifications"] = array;
598
+ }
599
+ result[@"status"] = @(input.status);
600
+ result[@"type"] = @(input.type);
601
+
602
+ return result;
603
+ }
604
+
605
+ +(NSMutableDictionary* _Nonnull)generateRGLApplication:(RGLApplication* _Nullable)input {
606
+ NSMutableDictionary *result = [NSMutableDictionary new];
607
+ if(input == nil) return result;
608
+
609
+ result[@"applicationID"] = input.applicationID;
610
+ result[@"dataHashAlgorithm"] = input.dataHashAlgorithm;
611
+ if(input.files != nil){
612
+ NSMutableArray *array = [NSMutableArray new];
613
+ for(RGLFile* item in input.files)
614
+ if(item != nil)
615
+ [array addObject:[self generateRGLFile:item]];
616
+ result[@"files"] = array;
617
+ }
618
+ result[@"type"] = @(input.type);
619
+ result[@"status"] = @(input.status);
620
+ result[@"unicodeVersion"] = input.unicodeVersion;
621
+ result[@"version"] = input.version;
622
+
623
+ return result;
624
+ }
625
+
626
+ +(NSMutableDictionary* _Nonnull)generateRGLFile:(RGLFile* _Nullable)input {
627
+ NSMutableDictionary *result = [NSMutableDictionary new];
628
+ if(input == nil) return result;
629
+
630
+ result[@"fileData"] = [self generateRGLFileData:input.fileData];
631
+ result[@"fileID"] = input.fileID;
632
+ if(input.notifications != nil){
633
+ NSMutableArray *array = [NSMutableArray new];
634
+ for(NSNumber* item in input.notifications)
635
+ if(item != nil)
636
+ [array addObject:item];
637
+ result[@"notifications"] = array;
638
+ }
639
+ result[@"pAStatus"] = @(input.pAStatus);
640
+ result[@"readingStatus"] = @(input.readingStatus);
641
+ result[@"readingTime"] = @(input.readingTime);
642
+ result[@"type"] = @(input.type);
643
+ result[@"typeName"] = input.typeName;
644
+ if(input.docFieldsText != nil){
645
+ NSMutableArray *array = [NSMutableArray new];
646
+ for(NSNumber* item in input.docFieldsText)
647
+ if(item != nil)
648
+ [array addObject:item];
649
+ result[@"docFieldsText"] = array;
650
+ }
651
+ if(input.docFieldsGraphics != nil){
652
+ NSMutableArray *array = [NSMutableArray new];
653
+ for(NSNumber* item in input.docFieldsGraphics)
654
+ if(item != nil)
655
+ [array addObject:item];
656
+ result[@"docFieldsGraphics"] = array;
657
+ }
658
+ if(input.docFieldsOriginals != nil){
659
+ NSMutableArray *array = [NSMutableArray new];
660
+ for(NSNumber* item in input.docFieldsOriginals)
661
+ if(item != nil)
662
+ [array addObject:item];
663
+ result[@"docFieldsOriginals"] = array;
664
+ }
665
+ result[@"certificates"] = [self generateRGLSecurityObjectCertificates:input.certificates];
666
+
667
+ return result;
668
+ }
669
+
670
+ +(NSMutableDictionary* _Nonnull)generateRGLFileData:(RGLFileData* _Nullable)input {
671
+ NSMutableDictionary *result = [NSMutableDictionary new];
672
+ if(input == nil) return result;
673
+
674
+ result[@"data"] = input.data;
675
+ result[@"length"] = @(input.length);
676
+ result[@"status"] = @(input.status);
677
+ result[@"type"] = @(input.type);
678
+
679
+ return result;
680
+ }
681
+
682
+ +(NSMutableDictionary* _Nonnull)generateRGLSecurityObjectCertificates:(RGLSecurityObjectCertificates* _Nullable)input {
683
+ NSMutableDictionary *result = [NSMutableDictionary new];
684
+ if(input == nil) return result;
685
+
686
+ result[@"securityObject"] = [self generateRGLCertificateData:input.securityObject];
687
+
688
+ return result;
689
+ }
690
+
691
+ +(NSMutableDictionary* _Nonnull)generateRGLCertificateData:(RGLCertificateData* _Nullable)input {
692
+ NSMutableDictionary *result = [NSMutableDictionary new];
693
+ if(input == nil) return result;
694
+
695
+ result[@"data"] = input.data;
696
+ result[@"length"] = @(input.length);
697
+
698
+ return result;
699
+ }
700
+
701
+ +(NSMutableDictionary* _Nonnull)generateRGLSecurityObject:(RGLSecurityObject* _Nullable)input {
702
+ NSMutableDictionary *result = [NSMutableDictionary new];
703
+ if(input == nil) return result;
704
+
705
+ result[@"fileReference"] = @(input.fileReference);
706
+ result[@"objectType"] = input.objectType;
707
+ result[@"version"] = @(input.version);
708
+ if(input.signerInfos != nil){
709
+ NSMutableArray *array = [NSMutableArray new];
710
+ for(RGLSignerInfo* item in input.signerInfos)
711
+ if(item != nil)
712
+ [array addObject:[self generateRGLSignerInfo:item]];
713
+ result[@"signerInfos"] = array;
714
+ }
715
+ if(input.notifications != nil){
716
+ NSMutableArray *array = [NSMutableArray new];
717
+ for(NSNumber* item in input.notifications)
718
+ if(item != nil)
719
+ [array addObject:item];
720
+ result[@"notifications"] = array;
721
+ }
722
+
723
+ return result;
724
+ }
725
+
726
+ +(NSMutableDictionary* _Nonnull)generateRGLSignerInfo:(RGLSignerInfo* _Nullable)input {
727
+ NSMutableDictionary *result = [NSMutableDictionary new];
728
+ if(input == nil) return result;
729
+
730
+ result[@"dataToHash"] = input.dataToHash;
731
+ result[@"digestAlgorithm"] = input.digestAlgorithm;
732
+ result[@"paStatus"] = @(input.paStatus);
733
+ result[@"signatureAlgorithm"] = input.signatureAlgorithm;
734
+ result[@"version"] = @(input.version);
735
+ result[@"issuer"] = [self generateRGLAuthority:input.issuer];
736
+ result[@"serialNumber"] = [self generateRGLRFIDValue:input.serialNumber];
737
+ result[@"signature"] = [self generateRGLRFIDValue:input.signature];
738
+ if(input.signedAttributes != nil){
739
+ NSMutableArray *array = [NSMutableArray new];
740
+ for(RGLExtension* item in input.signedAttributes)
741
+ if(item != nil)
742
+ [array addObject:[self generateRGLExtension:item]];
743
+ result[@"signedAttributes"] = array;
744
+ }
745
+ result[@"subjectKeyIdentifier"] = [self generateRGLRFIDValue:input.subjectKeyIdentifier];
746
+ if(input.certificateChain != nil){
747
+ NSMutableArray *array = [NSMutableArray new];
748
+ for(RGLCertificateChain* item in input.certificateChain)
749
+ if(item != nil)
750
+ [array addObject:[self generateRGLCertificateChain:item]];
751
+ result[@"certificateChain"] = array;
752
+ }
753
+ if(input.notifications != nil){
754
+ NSMutableArray *array = [NSMutableArray new];
755
+ for(NSNumber* item in input.notifications)
756
+ if(item != nil)
757
+ [array addObject:item];
758
+ result[@"notifications"] = array;
759
+ }
760
+
761
+ return result;
762
+ }
763
+
764
+ +(NSMutableDictionary* _Nonnull)generateRGLAuthority:(RGLAuthority* _Nullable)input {
765
+ NSMutableDictionary *result = [NSMutableDictionary new];
766
+ if(input == nil) return result;
767
+
768
+ if(input.attributes != nil){
769
+ NSMutableArray *array = [NSMutableArray new];
770
+ for(RGLAttribute* item in input.attributes)
771
+ if(item != nil)
772
+ [array addObject:[self generateRGLAttribute:item]];
773
+ result[@"attributes"] = array;
774
+ }
775
+ result[@"data"] = input.data;
776
+ result[@"friendlyName"] = [self generateRGLRFIDValue:input.friendlyName];
777
+
778
+ return result;
779
+ }
780
+
781
+ +(NSMutableDictionary* _Nonnull)generateRGLRFIDValue:(RGLRFIDValue* _Nullable)input {
782
+ NSMutableDictionary *result = [NSMutableDictionary new];
783
+ if(input == nil) return result;
784
+
785
+ result[@"data"] = input.data;
786
+ result[@"length"] = @(input.length);
787
+ result[@"status"] = @(input.status);
788
+ result[@"type"] = @(input.type);
789
+ result[@"format"] = input.format;
790
+
791
+ return result;
792
+ }
793
+
794
+ +(NSMutableDictionary* _Nonnull)generateRGLAttribute:(RGLAttribute* _Nullable)input {
795
+ NSMutableDictionary *result = [NSMutableDictionary new];
796
+ if(input == nil) return result;
797
+
798
+ result[@"type"] = input.type;
799
+ result[@"value"] = [self generateRGLRFIDValue:input.value];
800
+
801
+ return result;
802
+ }
803
+
804
+ +(NSMutableDictionary* _Nonnull)generateRGLExtension:(RGLExtension* _Nullable)input {
805
+ NSMutableDictionary *result = [NSMutableDictionary new];
806
+ if(input == nil) return result;
807
+
808
+ result[@"data"] = input.data;
809
+ result[@"type"] = input.type;
810
+
811
+ return result;
812
+ }
813
+
814
+ +(NSMutableDictionary* _Nonnull)generateRGLCertificateChain:(RGLCertificateChain* _Nullable)input {
815
+ NSMutableDictionary *result = [NSMutableDictionary new];
816
+ if(input == nil) return result;
817
+
818
+ if(input.extensions != nil){
819
+ NSMutableArray *array = [NSMutableArray new];
820
+ for(RGLExtension* item in input.extensions)
821
+ if(item != nil)
822
+ [array addObject:[self generateRGLExtension:item]];
823
+ result[@"extensions"] = array;
824
+ }
825
+ result[@"fileName"] = [self generateRGLRFIDValue:input.fileName];
826
+ result[@"issuer"] = [self generateRGLAuthority:input.issuer];
827
+ if(input.notifications != nil){
828
+ NSMutableArray *array = [NSMutableArray new];
829
+ for(NSNumber* item in input.notifications)
830
+ if(item != nil)
831
+ [array addObject:item];
832
+ result[@"notifications"] = array;
833
+ }
834
+ result[@"origin"] = @(input.origin);
835
+ result[@"paStatus"] = @(input.paStatus);
836
+ result[@"serialNumber"] = input.serialNumber;
837
+ result[@"signatureAlgorithm"] = input.signatureAlgorithm;
838
+ result[@"subject"] = [self generateRGLAuthority:input.subject];
839
+ result[@"subjectPKAlgorithm"] = input.subjectPKAlgorithm;
840
+ result[@"type"] = @(input.type);
841
+ result[@"validity"] = [self generateRGLValidity:input.validity];
842
+ result[@"version"] = @(input.version);
843
+
844
+ return result;
845
+ }
846
+
847
+ +(NSMutableDictionary* _Nonnull)generateRGLValidity:(RGLValidity* _Nullable)input {
848
+ NSMutableDictionary *result = [NSMutableDictionary new];
849
+ if(input == nil) return result;
850
+
851
+ result[@"notAfter"] = [self generateRGLRFIDValue:input.notAfter];
852
+ result[@"notBefore"] = [self generateRGLRFIDValue:input.notBefore];
853
+
854
+ return result;
855
+ }
856
+
857
+ +(NSMutableDictionary* _Nonnull)generateNSError:(NSError* _Nullable)input {
858
+ NSMutableDictionary *result = [NSMutableDictionary new];
859
+ if(input == nil) return result;
860
+
861
+ result[@"code"] = @(input.code);
862
+ result[@"localizedDescription"] = input.localizedDescription;
863
+
864
+ return result;
865
+ }
866
+
867
+ +(NSMutableDictionary* _Nonnull)generateRGLPAResourcesIssuer:(RGLPAResourcesIssuer* _Nullable)input {
868
+ NSMutableDictionary *result = [NSMutableDictionary new];
869
+ if(input == nil) return result;
870
+
871
+ result[@"data"] = [NSKeyedUnarchiver unarchiveObjectWithData:input.data];
872
+ result[@"friendlyName"] = input.friendlyName;
873
+ if(input.attributes != nil){
874
+ NSMutableArray *array = [NSMutableArray new];
875
+ for(RGLPAAttribute* item in input.attributes)
876
+ if(item != nil)
877
+ [array addObject:[self generateRGLPAAttribute:item]];
878
+ result[@"attributes"] = array;
879
+ }
880
+
881
+ return result;
882
+ }
883
+
884
+ +(NSMutableDictionary* _Nonnull)generateRGLPAAttribute:(RGLPAAttribute* _Nullable)input {
885
+ NSMutableDictionary *result = [NSMutableDictionary new];
886
+ if(input == nil) return result;
887
+
888
+ result[@"value"] = input.value;
889
+ result[@"type"] = input.type;
890
+
891
+ return result;
892
+ }
893
+
894
+ +(NSMutableDictionary* _Nonnull)generateRGLTAChallenge:(RGLTAChallenge* _Nullable)input {
895
+ NSMutableDictionary *result = [NSMutableDictionary new];
896
+ if(input == nil) return result;
897
+
898
+ result[@"data"] = [NSKeyedUnarchiver unarchiveObjectWithData:input.data];
899
+ result[@"auxPCD"] = input.auxPCD;
900
+ result[@"challengePICC"] = input.challengePICC;
901
+ result[@"hashPK"] = input.hashPK;
902
+ result[@"idPICC"] = input.idPICC;
903
+
904
+ return result;
905
+ }
906
+
907
+ +(NSMutableDictionary* _Nonnull)generateRGLRFIDNotify:(RGLRFIDNotify* _Nullable)input {
908
+ NSMutableDictionary *result = [NSMutableDictionary new];
909
+ if(input == nil) return result;
910
+
911
+ result[@"code"] = @(input.code);
912
+ result[@"value"] = @(input.value);
913
+ result[@"number"] = @(input.number);
914
+
915
+ return result;
916
+ }
917
+
918
+ @end