@regulaforensics/cordova-plugin-document-reader-api 6.9.0 → 7.1.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,2187 @@
1
+ //
2
+ // JSONConstructor.java
3
+ // DocumentReader
4
+ //
5
+ // Created by Pavel Masiuk on 21.09.2023.
6
+ // Copyright © 2023 Regula. All rights reserved.
7
+ //
8
+ @file:Suppress("USELESS_CAST")
9
+
10
+ package cordova.plugin.documentreader
11
+
12
+ import android.content.Context
13
+ import android.graphics.Bitmap
14
+ import android.graphics.Rect
15
+ import android.graphics.Typeface
16
+ import android.util.Pair
17
+ import com.regula.common.exception.RegulaException
18
+ import com.regula.documentreader.api.License
19
+ import com.regula.documentreader.api.config.RecognizeConfig
20
+ import com.regula.documentreader.api.config.ScannerConfig
21
+ import com.regula.documentreader.api.enums.BarcodeType
22
+ import com.regula.documentreader.api.enums.DocReaderAction
23
+ import com.regula.documentreader.api.enums.PDF417Info
24
+ import com.regula.documentreader.api.enums.eGraphicFieldType
25
+ import com.regula.documentreader.api.enums.eRFID_DataFile_Type
26
+ import com.regula.documentreader.api.enums.eRPRM_Lights
27
+ import com.regula.documentreader.api.params.AuthenticityParams
28
+ import com.regula.documentreader.api.params.BackendProcessingConfig
29
+ import com.regula.documentreader.api.params.BleDeviceConfig
30
+ import com.regula.documentreader.api.params.DocReaderConfig
31
+ import com.regula.documentreader.api.params.FaceApiParams
32
+ import com.regula.documentreader.api.params.Functionality
33
+ import com.regula.documentreader.api.params.ImageInputData
34
+ import com.regula.documentreader.api.params.ImageQA
35
+ import com.regula.documentreader.api.params.ImageQA.GlaresCheckParams
36
+ import com.regula.documentreader.api.params.LivenessParams
37
+ import com.regula.documentreader.api.params.OnlineProcessingConfig
38
+ import com.regula.documentreader.api.params.ParamsCustomization
39
+ import com.regula.documentreader.api.params.ProcessParam
40
+ import com.regula.documentreader.api.params.RfidScenario
41
+ import com.regula.documentreader.api.params.rfid.PKDCertificate
42
+ import com.regula.documentreader.api.params.rfid.RFIDParams
43
+ import com.regula.documentreader.api.params.rfid.TccParams
44
+ import com.regula.documentreader.api.params.rfid.authorization.PAAttribute
45
+ import com.regula.documentreader.api.params.rfid.authorization.PAResourcesIssuer
46
+ import com.regula.documentreader.api.params.rfid.authorization.TAChallenge
47
+ import com.regula.documentreader.api.params.rfid.dg.EDLDataGroups
48
+ import com.regula.documentreader.api.params.rfid.dg.EIDDataGroups
49
+ import com.regula.documentreader.api.params.rfid.dg.EPassportDataGroups
50
+ import com.regula.documentreader.api.results.BytesData
51
+ import com.regula.documentreader.api.results.Coordinate
52
+ import com.regula.documentreader.api.results.DocReaderDocumentsDatabase
53
+ import com.regula.documentreader.api.results.DocReaderFieldRect
54
+ import com.regula.documentreader.api.results.DocReaderVersion
55
+ import com.regula.documentreader.api.results.DocumentReaderBarcodeField
56
+ import com.regula.documentreader.api.results.DocumentReaderBarcodeResult
57
+ import com.regula.documentreader.api.results.DocumentReaderComparison
58
+ import com.regula.documentreader.api.results.DocumentReaderDocumentType
59
+ import com.regula.documentreader.api.results.DocumentReaderGraphicField
60
+ import com.regula.documentreader.api.results.DocumentReaderGraphicResult
61
+ import com.regula.documentreader.api.results.DocumentReaderNotification
62
+ import com.regula.documentreader.api.results.DocumentReaderResults
63
+ import com.regula.documentreader.api.results.DocumentReaderResultsStatus
64
+ import com.regula.documentreader.api.results.DocumentReaderResultsStatus.DetailsOptical
65
+ import com.regula.documentreader.api.results.DocumentReaderResultsStatus.DetailsRFID
66
+ import com.regula.documentreader.api.results.DocumentReaderRfidOrigin
67
+ import com.regula.documentreader.api.results.DocumentReaderScenario
68
+ import com.regula.documentreader.api.results.DocumentReaderSymbol
69
+ import com.regula.documentreader.api.results.DocumentReaderTextField
70
+ import com.regula.documentreader.api.results.DocumentReaderTextResult
71
+ import com.regula.documentreader.api.results.DocumentReaderTextSource
72
+ import com.regula.documentreader.api.results.DocumentReaderValidity
73
+ import com.regula.documentreader.api.results.DocumentReaderValue
74
+ import com.regula.documentreader.api.results.ElementPosition
75
+ import com.regula.documentreader.api.results.ImageQuality
76
+ import com.regula.documentreader.api.results.ImageQualityGroup
77
+ import com.regula.documentreader.api.results.TransactionInfo
78
+ import com.regula.documentreader.api.results.VDSNCData
79
+ import com.regula.documentreader.api.results.authenticity.DocumentReaderAuthenticityCheck
80
+ import com.regula.documentreader.api.results.authenticity.DocumentReaderAuthenticityElement
81
+ import com.regula.documentreader.api.results.authenticity.DocumentReaderAuthenticityResult
82
+ import com.regula.documentreader.api.results.rfid.AccessControlProcedureType
83
+ import com.regula.documentreader.api.results.rfid.Application
84
+ import com.regula.documentreader.api.results.rfid.Attribute
85
+ import com.regula.documentreader.api.results.rfid.Authority
86
+ import com.regula.documentreader.api.results.rfid.CardProperties
87
+ import com.regula.documentreader.api.results.rfid.CertificateChain
88
+ import com.regula.documentreader.api.results.rfid.CertificateData
89
+ import com.regula.documentreader.api.results.rfid.DataField
90
+ import com.regula.documentreader.api.results.rfid.Extension
91
+ import com.regula.documentreader.api.results.rfid.File
92
+ import com.regula.documentreader.api.results.rfid.FileData
93
+ import com.regula.documentreader.api.results.rfid.RFIDSessionData
94
+ import com.regula.documentreader.api.results.rfid.SecurityObject
95
+ import com.regula.documentreader.api.results.rfid.SecurityObjectCertificates
96
+ import com.regula.documentreader.api.results.rfid.SignerInfo
97
+ import com.regula.documentreader.api.results.rfid.Validity
98
+ import com.regula.documentreader.api.results.rfid.Value
99
+ import cordova.plugin.documentreader.Convert.bitmapFromBase64
100
+ import cordova.plugin.documentreader.Convert.bitmapToBase64
101
+ import cordova.plugin.documentreader.Convert.byteArrayFromBase64
102
+ import cordova.plugin.documentreader.Convert.generateByteArray
103
+ import org.json.JSONArray
104
+ import org.json.JSONObject
105
+
106
+ fun generateCompletion(action: Int, results: DocumentReaderResults?, error: RegulaException?, context: Context?) = object : JSONObject() { init {
107
+ put("action", action)
108
+ if (listOf(
109
+ DocReaderAction.COMPLETE,
110
+ DocReaderAction.MORE_PAGES_AVAILABLE,
111
+ DocReaderAction.CANCEL,
112
+ DocReaderAction.ERROR,
113
+ DocReaderAction.TIMEOUT
114
+ ).contains(action)
115
+ ) put("results", generateDocumentReaderResults(results, context))
116
+ put("error", generateRegulaException(error))
117
+ }
118
+ }
119
+
120
+ fun generateSuccessCompletion(success: Boolean, error: RegulaException?) = object : JSONObject() { init {
121
+ put("success", success)
122
+ put("error", generateRegulaException(error))
123
+ }
124
+ }
125
+
126
+ fun generatePACertificateCompletion(serialNumber: ByteArray?, issuer: PAResourcesIssuer?) = object : JSONObject() { init {
127
+ put("serialNumber", generateByteArray(serialNumber))
128
+ put("issuer", generatePAResourcesIssuer(issuer))
129
+ }
130
+ }
131
+
132
+ fun generateFinalizePackageCompletion(action: Int, info: TransactionInfo?, error: RegulaException?) = object : JSONObject() { init {
133
+ put("action", action)
134
+ put("info", generateTransactionInfo(info))
135
+ put("error", generateRegulaException(error))
136
+ }
137
+ }
138
+
139
+ fun regulaExceptionFromJSON(temp: JSONObject?) = temp?.let {
140
+ val input: JSONObject = temp
141
+
142
+ val code = input.optInt("code")
143
+ val message = input.optString("message")
144
+
145
+ RegulaException(code, message)
146
+ }
147
+
148
+ fun generateRegulaException(temp: RegulaException?): JSONObject? = temp?.let {
149
+ object : JSONObject() { init {
150
+ val input: RegulaException = it
151
+ put("code", input.errorCode)
152
+ put("message", input.message)
153
+ }
154
+ }
155
+ }
156
+
157
+ fun transactionInfoFromJSON(temp: JSONObject?): TransactionInfo? {
158
+ temp ?: return null
159
+ val input: JSONObject = temp
160
+ val result = TransactionInfo()
161
+
162
+ if (input.has("transactionId")) result.transactionId = input.getString("transactionId")
163
+ if (input.has("tag")) result.tag = input.getString("tag")
164
+
165
+ return result
166
+ }
167
+
168
+ fun generateTransactionInfo(temp: TransactionInfo?): JSONObject? {
169
+ val result = JSONObject()
170
+ temp ?: return null
171
+ val input: TransactionInfo = temp
172
+
173
+ result.put("transactionId", input.transactionId)
174
+ result.put("tag", input.tag)
175
+
176
+ return result
177
+ }
178
+
179
+ fun tccParamsFromJSON(input: JSONObject): TccParams {
180
+ val result = TccParams()
181
+
182
+ if (input.has("serviceUrlTA")) result.serviceUrlTA = input.getString("serviceUrlTA")
183
+ if (input.has("serviceUrlPA")) result.serviceUrlPA = input.getString("serviceUrlPA")
184
+ if (input.has("pfxCertUrl")) result.pfxCertUrl = input.getString("pfxCertUrl")
185
+ if (input.has("pfxPassPhrase")) result.pfxPassPhrase = input.getString("pfxPassPhrase")
186
+ if (input.has("pfxCert")) result.pfxCert = byteArrayFromBase64(input.getString("pfxCert"))
187
+
188
+ return result
189
+ }
190
+
191
+ fun generateTccParams(temp: TccParams?): JSONObject? {
192
+ val result = JSONObject()
193
+ temp ?: return null
194
+ val input: TccParams = temp
195
+
196
+ result.put("serviceUrlTA", input.serviceUrlTA)
197
+ result.put("serviceUrlPA", input.serviceUrlPA)
198
+ result.put("pfxCertUrl", input.pfxCertUrl)
199
+ result.put("pfxPassPhrase", input.pfxPassPhrase)
200
+ result.put("pfxCert", generateByteArray(input.pfxCert))
201
+
202
+ return result
203
+ }
204
+
205
+ fun docReaderConfigFromJSON(input: JSONObject): DocReaderConfig {
206
+ val license = byteArrayFromBase64(input.getString("license"))
207
+ var result = DocReaderConfig(license!!)
208
+
209
+ if (input.has("customDb")) result = DocReaderConfig(license, byteArrayFromBase64(input.getString("customDb"))!!)
210
+ if (input.has("licenseUpdate")) result.setLicenseUpdate(input.getBoolean("licenseUpdate"))
211
+ if (input.has("delayedNNLoad")) result.isDelayedNNLoad = input.getBoolean("delayedNNLoad")
212
+ if (input.has("blackList")) result.blackList = input.getJSONObject("blackList")
213
+
214
+ return result
215
+ }
216
+
217
+ fun generateDocReaderConfig(temp: DocReaderConfig?): JSONObject? {
218
+ val result = JSONObject()
219
+ temp ?: return null
220
+ val input: DocReaderConfig = temp
221
+
222
+ result.put("license", generateByteArray(input.license))
223
+ result.put("customDb", generateByteArray(input.customDb))
224
+ result.put("licenseUpdate", input.isLicenseUpdate)
225
+ result.put("delayedNNLoad", input.isDelayedNNLoad)
226
+ result.put("blackList", input.blackList)
227
+
228
+ return result
229
+ }
230
+
231
+ fun scannerConfigFromJSON(input: JSONObject): ScannerConfig {
232
+ val builder = if (input.has("scenario")) ScannerConfig.Builder(input.getString("scenario"))
233
+ else ScannerConfig.Builder(onlineProcessingConfigFromJSON(input.getJSONObject("onlineProcessingConfig"))!!)
234
+
235
+ if (input.has("onlineProcessingConfig")) builder.setOnlineProcessingConfig(onlineProcessingConfigFromJSON(input.getJSONObject("onlineProcessingConfig")))
236
+ if (input.has("livePortrait")) builder.setLivePortrait(bitmapFromBase64(input.getString("livePortrait"))!!)
237
+ if (input.has("extPortrait")) builder.setExtPortrait(bitmapFromBase64(input.getString("extPortrait"))!!)
238
+ if (input.has("cameraId")) builder.setCameraId(input.getInt("cameraId"))
239
+
240
+ return builder.build()
241
+ }
242
+
243
+ fun generateScannerConfig(temp: ScannerConfig?): JSONObject? {
244
+ val result = JSONObject()
245
+ temp ?: return null
246
+ val input: ScannerConfig = temp
247
+
248
+ result.put("scenario", input.scenario)
249
+ result.put("onlineProcessingConfig", generateOnlineProcessingConfig(input.onlineProcessingConfig))
250
+ result.put("livePortrait", bitmapToBase64(input.livePortrait))
251
+ result.put("extPortrait", bitmapToBase64(input.extPortrait))
252
+ result.put("cameraId", input.cameraId)
253
+
254
+ return result
255
+ }
256
+
257
+ fun recognizeConfigFromJSON(input: JSONObject): RecognizeConfig {
258
+ val builder = if (input.has("scenario")) RecognizeConfig.Builder(input.getString("scenario"))
259
+ else RecognizeConfig.Builder(onlineProcessingConfigFromJSON(input.getJSONObject("onlineProcessingConfig"))!!)
260
+
261
+ if (input.has("oneShotIdentification")) builder.setOneShotIdentification(input.getBoolean("oneShotIdentification"))
262
+ if (input.has("livePortrait")) builder.setLivePortrait(bitmapFromBase64(input.getString("livePortrait"))!!)
263
+ if (input.has("extPortrait")) builder.setExtPortrait(bitmapFromBase64(input.getString("extPortrait"))!!)
264
+ if (input.has("image")) builder.setBitmap(bitmapFromBase64(input.getString("image"))!!)
265
+ if (input.has("data")) builder.setData(byteArrayFromBase64(input.getString("data"))!!)
266
+ if (input.has("images")) {
267
+ val base64Images = input.getJSONArray("images")
268
+ val images = arrayOfNulls<Bitmap>(base64Images.length())
269
+ for (i in images.indices) images[i] = bitmapFromBase64(base64Images.getString(i))
270
+ builder.setBitmaps(images)
271
+ }
272
+ if (input.has("imageInputData")) {
273
+ val base64InputData = input.getJSONArray("imageInputData")
274
+ val inputData = arrayOfNulls<ImageInputData>(base64InputData.length())
275
+ for (i in inputData.indices) inputData[i] = imageInputDataFromJSON(base64InputData.getJSONObject(i))
276
+ builder.setImageInputData(inputData)
277
+ }
278
+
279
+ return builder.build()
280
+ }
281
+
282
+ fun generateRecognizeConfig(temp: RecognizeConfig?): JSONObject? {
283
+ val result = JSONObject()
284
+ temp ?: return null
285
+ val input: RecognizeConfig = temp
286
+
287
+ result.put("scenario", input.scenario)
288
+ result.put("onlineProcessingConfig", generateOnlineProcessingConfig(input.onlineProcessingConfig))
289
+ result.put("oneShotIdentification", input.oneShotIdentification)
290
+ result.put("livePortrait", bitmapToBase64(input.livePortrait))
291
+ result.put("extPortrait", bitmapToBase64(input.extPortrait))
292
+ result.put("image", bitmapToBase64(input.bitmap))
293
+ result.put("data", generateByteArray(input.data))
294
+ if (input.bitmaps == null)
295
+ result.put("images", null)
296
+ else {
297
+ val array = JSONArray()
298
+ for (bitmap in input.bitmaps!!) array.put(bitmapToBase64(bitmap))
299
+ result.put("images", array)
300
+ }
301
+ result.put("imageInputData", generateArray(input.imageInputData, ::generateImageInputData))
302
+
303
+ return result
304
+ }
305
+
306
+ fun backendProcessingConfigFromJSON(temp: JSONObject?): BackendProcessingConfig? {
307
+ if (temp == null || !temp.has("url")) return null
308
+ val input: JSONObject = temp
309
+
310
+ val result = BackendProcessingConfig(input.getString("url"))
311
+ if (input.has("httpHeaders")) result.httpHeaders = stringMapFromJson(input.getJSONObject("httpHeaders"))
312
+ if (input.has("rfidServerSideChipVerification")) result.rfidServerSideChipVerification = input.getBoolean("rfidServerSideChipVerification")
313
+
314
+ return result
315
+ }
316
+
317
+ fun generateBackendProcessingConfig(temp: BackendProcessingConfig?): JSONObject? {
318
+ val result = JSONObject()
319
+ temp ?: return null
320
+ val input: BackendProcessingConfig = temp
321
+
322
+ result.put("url", input.url)
323
+ result.put("httpHeaders", generateStringMap(input.httpHeaders))
324
+ result.put("rfidServerSideChipVerification", input.rfidServerSideChipVerification)
325
+
326
+ return result
327
+ }
328
+
329
+ fun onlineProcessingConfigFromJSON(temp: JSONObject?): OnlineProcessingConfig? {
330
+ if (temp == null || !temp.has("mode")) return null
331
+ val input: JSONObject = temp
332
+ val builder = OnlineProcessingConfig.Builder(input.getInt("mode"))
333
+
334
+ if (input.has("imageFormat")) builder.setImageFormat(input.getInt("imageFormat"))
335
+ if (input.has("url")) builder.setUrl(input.getString("url"))
336
+ if (input.has("imageCompressionQuality")) builder.setImageCompressionQuality(input.getDouble("imageCompressionQuality").toFloat())
337
+ if (input.has("processParams")) builder.setProcessParams(processParamFromJSON(input.getJSONObject("processParams")))
338
+
339
+ return builder.build()
340
+ }
341
+
342
+ fun generateOnlineProcessingConfig(temp: OnlineProcessingConfig?): JSONObject? {
343
+ val result = JSONObject()
344
+ temp ?: return null
345
+ val input: OnlineProcessingConfig = temp
346
+
347
+ result.put("mode", input.mode)
348
+ result.put("url", input.url)
349
+ result.put("processParams", getProcessParams(input.processParam))
350
+ result.put("imageFormat", input.imageFormat)
351
+ result.put("imageCompressionQuality", input.imageCompressionQuality)
352
+
353
+ return result
354
+ }
355
+
356
+ fun faceApiParamsFromJSON(temp: JSONObject?): FaceApiParams? {
357
+ val result = FaceApiParams()
358
+ temp ?: return null
359
+ val input: JSONObject = temp
360
+
361
+ if (input.has("url") && !input.isNull("url")) result.url = input.getString("url")
362
+ if (input.has("mode") && !input.isNull("mode")) result.mode = input.getString("mode")
363
+ if (input.has("searchParams") && !input.isNull("searchParams")) result.search = faceApiSearchParamsFromJSON(input.getJSONObject("searchParams"))
364
+ if (input.has("threshold") && !input.isNull("threshold")) result.threshold = input.getInt("threshold")
365
+ if (input.has("serviceTimeout") && !input.isNull("serviceTimeout")) result.serviceTimeout = input.getInt("serviceTimeout")
366
+ if (input.has("proxy") && !input.isNull("proxy")) result.proxy = input.getString("proxy")
367
+ if (input.has("proxyPassword") && !input.isNull("proxyPassword")) result.proxyUserPwd = input.getString("proxyPassword")
368
+ if (input.has("proxyType") && !input.isNull("proxyType")) result.proxyType = input.getInt("proxyType")
369
+
370
+ return result
371
+ }
372
+
373
+ fun generateFaceApiParams(temp: FaceApiParams?): JSONObject? {
374
+ val result = JSONObject()
375
+ temp ?: return null
376
+ val input: FaceApiParams = temp
377
+
378
+ result.put("url", input.url)
379
+ result.put("mode", input.mode)
380
+ result.put("searchParams", generateFaceApiSearchParams(input.search))
381
+ result.put("threshold", input.threshold)
382
+ result.put("serviceTimeout", input.serviceTimeout)
383
+ result.put("proxy", input.proxy)
384
+ result.put("proxyPassword", input.proxyUserPwd)
385
+ result.put("proxyType", input.proxyType)
386
+
387
+ return result
388
+ }
389
+
390
+ fun faceApiSearchParamsFromJSON(temp: JSONObject?): FaceApiParams.Search? {
391
+ val result = FaceApiParams.Search()
392
+ temp ?: return null
393
+ val input: JSONObject = temp
394
+
395
+ if (input.has("limit") && !input.isNull("limit")) result.limit = input.getInt("limit")
396
+ if (input.has("threshold") && !input.isNull("threshold")) result.threshold = input.getDouble("threshold").toFloat()
397
+ if (input.has("groupIds") && !input.isNull("groupIds")) {
398
+ val jsonArrayGroupIds = input.getJSONArray("groupIds")
399
+ val groupIds = IntArray(jsonArrayGroupIds.length())
400
+ for (i in 0 until jsonArrayGroupIds.length())
401
+ groupIds[i] = jsonArrayGroupIds.getInt(i)
402
+ result.groupIds = groupIds
403
+ }
404
+
405
+ return result
406
+ }
407
+
408
+ fun generateFaceApiSearchParams(temp: FaceApiParams.Search?): JSONObject? {
409
+ val result = JSONObject()
410
+ temp ?: return null
411
+ val input: FaceApiParams.Search = temp
412
+
413
+ result.put("limit", input.limit)
414
+ result.put("threshold", input.threshold)
415
+ result.put("groupIds", input.groupIds.generate())
416
+
417
+ return result
418
+ }
419
+
420
+ fun rfidParamsFromJSON(temp: JSONObject?): RFIDParams? {
421
+ val result = RFIDParams()
422
+ temp ?: return null
423
+ val input: JSONObject = temp
424
+
425
+ if (input.has("paIgnoreNotificationCodes")) result.paIgnoreNotificationCodes = input.getJSONArray("paIgnoreNotificationCodes").toIntArray()
426
+
427
+ return result
428
+ }
429
+
430
+ fun generateRFIDParams(temp: RFIDParams?): JSONObject? {
431
+ val result = JSONObject()
432
+ temp ?: return null
433
+ val input: RFIDParams = temp
434
+
435
+ result.put("paIgnoreNotificationCodes", input.paIgnoreNotificationCodes.generate())
436
+
437
+ return result
438
+ }
439
+
440
+ fun processParamFromJSON(input: JSONObject): ProcessParam {
441
+ val result = ProcessParam()
442
+ setProcessParams(result, input)
443
+ return result
444
+ }
445
+
446
+ fun generateProcessParam(input: ProcessParam): JSONObject = getProcessParams(input)
447
+
448
+ fun imageQAFromJSON(input: JSONObject): ImageQA {
449
+ val result = ImageQA()
450
+ setImageQA(result, input)
451
+ return result
452
+ }
453
+
454
+ fun generateImageQA(input: ImageQA) = getImageQA(input)
455
+
456
+ fun authenticityParamsFromJSON(input: JSONObject): AuthenticityParams {
457
+ val result = AuthenticityParams.defaultParams()
458
+ setAuthenticityParams(result, input)
459
+ return result
460
+ }
461
+
462
+ fun generateAuthenticityParams(input: AuthenticityParams?) = getAuthenticityParams(input)
463
+
464
+ fun livenessParamsFromJSON(input: JSONObject): LivenessParams {
465
+ val result = LivenessParams.defaultParams()
466
+ setLivenessParams(result, input)
467
+ return result
468
+ }
469
+
470
+ fun generateLivenessParams(input: LivenessParams?) = getLivenessParams(input)
471
+
472
+ fun eDLDataGroupsFromJSON(input: JSONObject): EDLDataGroups {
473
+ val result = EDLDataGroups()
474
+ setDataGroups(result, input)
475
+ return result
476
+ }
477
+
478
+ fun generateEDLDataGroups(input: EDLDataGroups): JSONObject = getDataGroups(input)
479
+
480
+ fun ePassportDataGroupsFromJSON(input: JSONObject): EPassportDataGroups {
481
+ val result = EPassportDataGroups()
482
+ setDataGroups(result, input)
483
+ return result
484
+ }
485
+
486
+ fun generateEPassportDataGroups(input: EPassportDataGroups): JSONObject = getDataGroups(input)
487
+
488
+ fun eIDDataGroupsFromJSON(input: JSONObject): EIDDataGroups {
489
+ val result = EIDDataGroups()
490
+ setDataGroups(result, input)
491
+ return result
492
+ }
493
+
494
+ fun generateEIDDataGroups(input: EIDDataGroups): JSONObject = getDataGroups(input)
495
+
496
+ fun rfidScenarioFromJSON(input: JSONObject): RfidScenario {
497
+ val result = RfidScenario()
498
+ setRfidScenario(result, input)
499
+ return result
500
+ }
501
+
502
+ fun generateRfidScenario(input: RfidScenario): JSONObject = getRfidScenario(input)
503
+
504
+ fun customizationFromJSON(input: JSONObject, context: Context): ParamsCustomization {
505
+ val result = ParamsCustomization()
506
+ setCustomization(result, input, context)
507
+ return result
508
+ }
509
+
510
+ fun generateCustomization(input: ParamsCustomization): JSONObject = getCustomization(input)
511
+
512
+ fun functionalityFromJSON(input: JSONObject): Functionality {
513
+ val result = Functionality()
514
+ setFunctionality(result, input)
515
+ return result
516
+ }
517
+
518
+ fun generateFunctionality(input: Functionality): JSONObject = getFunctionality(input)
519
+
520
+ fun glaresCheckParamsFromJSON(temp: JSONObject?): GlaresCheckParams? {
521
+ temp ?: return null
522
+ val input: JSONObject = temp
523
+ val result = GlaresCheckParams()
524
+
525
+ if (input.has("imgMarginPart")) result.imgMarginPart = input.getDouble("imgMarginPart")
526
+ if (input.has("maxGlaringPart")) result.maxGlaringPart = input.getDouble("maxGlaringPart")
527
+
528
+ return result
529
+ }
530
+
531
+ fun generateGlaresCheckParams(temp: GlaresCheckParams?): JSONObject? {
532
+ val result = JSONObject()
533
+ temp ?: return null
534
+ val input: GlaresCheckParams = temp
535
+
536
+ result.put("imgMarginPart", input.imgMarginPart)
537
+ result.put("maxGlaringPart", input.maxGlaringPart)
538
+
539
+ return result
540
+ }
541
+
542
+ fun typefaceFromJSON(input: JSONObject): Pair<Typeface, Int?> {
543
+ val name = input.getString("name")
544
+ val style = input.optInt("style", Typeface.NORMAL)
545
+ val size = if (input.has("size")) input.getInt("size") else null
546
+ return Pair(Typeface.create(name, style), size)
547
+ }
548
+
549
+ fun generateTypeface(temp: Typeface?, size: Int? = null): JSONObject? {
550
+ val result = JSONObject()
551
+ temp ?: return null
552
+ val input: Typeface = temp
553
+
554
+ result.put("name", "undefined")
555
+ result.put("style", input.style)
556
+ result.put("size", size)
557
+
558
+ return result
559
+ }
560
+
561
+ fun bleDeviceConfigFromJSON(input: JSONObject): BleDeviceConfig {
562
+ val bleWrapper = bleManager
563
+ var result = BleDeviceConfig(bleWrapper)
564
+
565
+ if (input.has("customDb")) result = BleDeviceConfig(bleWrapper!!, byteArrayFromBase64(input.getString("customDb")))
566
+ if (input.has("licenseUpdate")) result.setLicenseUpdate(input.getBoolean("licenseUpdate"))
567
+ if (input.has("delayedNNLoad")) result.isDelayedNNLoad = input.getBoolean("delayedNNLoad")
568
+ if (input.has("blackList")) result.blackList = input.getJSONObject("blackList")
569
+
570
+ return result
571
+ }
572
+
573
+ fun imageInputDataFromJSON(temp: JSONObject?): ImageInputData? {
574
+ if (temp == null || !temp.has("image")) return null
575
+ val input: JSONObject = temp
576
+
577
+ var light = 6
578
+ var pageIndex = 0
579
+ val image = bitmapFromBase64(input.getString("image"))!!
580
+ if (input.has("light")) light = input.getInt("light")
581
+ if (input.has("pageIndex")) pageIndex = input.getInt("pageIndex")
582
+
583
+ return ImageInputData(image, light, pageIndex)
584
+ }
585
+
586
+ fun generateImageInputData(temp: ImageInputData?): JSONObject? {
587
+ val result = JSONObject()
588
+ temp ?: return null
589
+ val input: ImageInputData = temp
590
+
591
+ result.put("image", bitmapToBase64(input.bitmap))
592
+ result.put("light", input.light)
593
+ result.put("pageIndex", input.pageIndex)
594
+
595
+ return result
596
+ }
597
+
598
+ fun pkdCertificateFromJSON(temp: JSONObject?): PKDCertificate? {
599
+ temp ?: return null
600
+ val input: JSONObject = temp
601
+ var resourceType = 0
602
+ var binaryData = ByteArray(0)
603
+
604
+ if (input.has("resourceType")) resourceType = input.getInt("resourceType")
605
+ if (input.has("binaryData")) binaryData = byteArrayFromBase64(input.getString("binaryData"))!!
606
+ if (input.has("privateKey")) {
607
+ val privateKey = byteArrayFromBase64(input.getString("privateKey"))
608
+ return PKDCertificate(binaryData, resourceType, privateKey)
609
+ }
610
+ return PKDCertificate(binaryData, resourceType)
611
+ }
612
+
613
+ fun generatePKDCertificate(temp: PKDCertificate?): JSONObject? {
614
+ val result = JSONObject()
615
+ temp ?: return null
616
+ val input: PKDCertificate = temp
617
+
618
+ result.put("resourceType", input.resourceType)
619
+ result.put("binaryData", generateByteArray(input.binaryData))
620
+ result.put("privateKey", generateByteArray(input.privateKey))
621
+
622
+ return result
623
+ }
624
+
625
+ fun documentReaderScenarioFromJSON(temp: JSONObject?): DocumentReaderScenario? {
626
+ temp ?: return null
627
+ val input: JSONObject = temp
628
+
629
+ val name = input.optString("name")
630
+ val caption = input.optString("caption")
631
+ val description = input.optString("description")
632
+ val multiPageOff = input.optBoolean("multiPageOff")
633
+ val frameKWHLandscape = input.optDouble("frameKWHLandscape")
634
+ val frameKWHPortrait = input.optDouble("frameKWHPortrait")
635
+ val frameKWHDoublePageSpreadPortrait = input.optDouble("frameKWHDoublePageSpreadPortrait")
636
+ val frameKWHDoublePageSpreadLandscape = input.optDouble("frameKWHDoublePageSpreadLandscape")
637
+ val frameOrientation = input.optInt("frameOrientation")
638
+ val uvTorch = input.optBoolean("uvTorch")
639
+ val faceExt = input.optBoolean("faceExt")
640
+ val seriesProcessMode = input.optBoolean("seriesProcessMode")
641
+ val manualCrop = input.optBoolean("manualCrop")
642
+
643
+ return DocumentReaderScenario(name, caption, description, if (multiPageOff) 1 else 0, frameKWHLandscape, frameKWHPortrait, frameKWHDoublePageSpreadPortrait, frameKWHDoublePageSpreadLandscape, frameOrientation, uvTorch, faceExt, seriesProcessMode, manualCrop, null)
644
+ }
645
+
646
+ fun generateDocumentReaderScenario(temp: DocumentReaderScenario?): JSONObject? {
647
+ val result = JSONObject()
648
+ temp ?: return null
649
+ val input: DocumentReaderScenario = temp
650
+
651
+ result.put("name", input.name)
652
+ result.put("caption", input.caption)
653
+ result.put("description", input.description)
654
+ result.put("multiPageOff", input.multiPageOff)
655
+ result.put("frameKWHLandscape", input.frameKWHLandscape)
656
+ result.put("frameKWHPortrait", input.frameKWHPortrait)
657
+ result.put("frameKWHDoublePageSpreadPortrait", input.frameKWHDoublePageSpreadPortrait)
658
+ result.put("frameKWHDoublePageSpreadLandscape", input.frameKWHDoublePageSpreadLandscape)
659
+ result.put("frameOrientation", input.frameOrientation)
660
+ result.put("uvTorch", input.uvTorch)
661
+ result.put("faceExt", input.faceExt)
662
+ result.put("seriesProcessMode", input.seriesProcessMode)
663
+ result.put("manualCrop", input.manualCrop)
664
+
665
+ return result
666
+ }
667
+
668
+ fun rectFromJSON(temp: JSONObject?): Rect? {
669
+ temp ?: return null
670
+ val input: JSONObject = temp
671
+ val result = Rect()
672
+
673
+ result.bottom = input.optInt("bottom")
674
+ result.top = input.optInt("top")
675
+ result.left = input.optInt("left")
676
+ result.right = input.optInt("right")
677
+
678
+ return result
679
+ }
680
+
681
+ fun generateRect(temp: Rect?): JSONObject? {
682
+ val result = JSONObject()
683
+ temp ?: return null
684
+ val input: Rect = temp
685
+
686
+ result.put("bottom", input.bottom)
687
+ result.put("top", input.top)
688
+ result.put("left", input.left)
689
+ result.put("right", input.right)
690
+
691
+ return result
692
+ }
693
+
694
+ fun docReaderFieldRectFromJSON(temp: JSONObject?): DocReaderFieldRect? {
695
+ temp ?: return null
696
+ val input: JSONObject = temp
697
+ val result = DocReaderFieldRect()
698
+
699
+ result.bottom = input.optInt("bottom")
700
+ result.top = input.optInt("top")
701
+ result.left = input.optInt("left")
702
+ result.right = input.optInt("right")
703
+
704
+ return result
705
+ }
706
+
707
+ fun generateDocReaderFieldRect(temp: DocReaderFieldRect?): JSONObject? {
708
+ val result = JSONObject()
709
+ temp ?: return null
710
+ val input: DocReaderFieldRect = temp
711
+
712
+ result.put("bottom", input.bottom)
713
+ result.put("top", input.top)
714
+ result.put("left", input.left)
715
+ result.put("right", input.right)
716
+
717
+ return result
718
+ }
719
+
720
+ fun documentReaderGraphicFieldFromJSON(temp: JSONObject?): DocumentReaderGraphicField? {
721
+ temp ?: return null
722
+ val input: JSONObject = temp
723
+ val result = DocumentReaderGraphicField()
724
+
725
+ input.remove("value")
726
+ result.sourceType = input.optInt("sourceType")
727
+ result.fieldType = input.optInt("fieldType")
728
+ result.light = input.optInt("light")
729
+ result.pageIndex = input.optInt("pageIndex")
730
+ result.originalPageIndex = input.optInt("originalPageIndex")
731
+ result.boundRect = docReaderFieldRectFromJSON(input.optJSONObject("fieldRect"))
732
+
733
+ return result
734
+ }
735
+
736
+ fun generateDocumentReaderGraphicField(temp: DocumentReaderGraphicField?, context: Context?): JSONObject? {
737
+ val result = JSONObject()
738
+ temp ?: return null
739
+ val input: DocumentReaderGraphicField = temp
740
+
741
+ result.put("sourceType", input.sourceType)
742
+ result.put("fieldType", input.fieldType)
743
+ result.put("light", input.light)
744
+ result.put("pageIndex", input.pageIndex)
745
+ result.put("originalPageIndex", input.originalPageIndex)
746
+ result.put("fieldName", eGraphicFieldType.getTranslation(context, input.fieldType))
747
+ result.put("lightName", eRPRM_Lights.getTranslation(context, input.light))
748
+ result.put("value", input.imageBase64())
749
+ result.put("fieldRect", generateDocReaderFieldRect(input.boundRect))
750
+
751
+ return result
752
+ }
753
+
754
+ fun documentReaderGraphicResultFromJSON(temp: JSONObject?): DocumentReaderGraphicResult? {
755
+ temp ?: return null
756
+ val input: JSONObject = temp
757
+ val result = DocumentReaderGraphicResult()
758
+
759
+ result.fields = listFromJSON(input.optJSONArray("fields"), ::documentReaderGraphicFieldFromJSON)!!
760
+
761
+ return result
762
+ }
763
+
764
+ fun generateDocumentReaderGraphicResult(temp: DocumentReaderGraphicResult?, context: Context?): JSONObject? {
765
+ val result = JSONObject()
766
+ temp ?: return null
767
+ val input: DocumentReaderGraphicResult = temp
768
+
769
+ result.put("fields", generateList(input.fields, ::generateDocumentReaderGraphicField, context))
770
+
771
+ return result
772
+ }
773
+
774
+ fun documentReaderValueFromJSON(temp: JSONObject?): DocumentReaderValue? {
775
+ temp ?: return null
776
+ val input: JSONObject = temp
777
+ val result = DocumentReaderValue()
778
+
779
+ result.pageIndex = input.optInt("pageIndex")
780
+ result.sourceType = input.optInt("sourceType")
781
+ result.probability = input.optInt("probability")
782
+ result.value = input.optString("value")
783
+ result.originalValue = input.optString("originalValue")
784
+ result.boundRect = rectFromJSON(input.optJSONObject("boundRect"))
785
+ result.originalSymbols = listFromJSON(input.optJSONArray("originalSymbols"), ::documentReaderSymbolFromJSON)!!
786
+ result.rfidOrigin = documentReaderRFIDOriginFromJSON(input.optJSONObject("rfidOrigin"))
787
+
788
+ return result
789
+ }
790
+
791
+ fun generateDocumentReaderValue(temp: DocumentReaderValue?): JSONObject? {
792
+ val result = JSONObject()
793
+ temp ?: return null
794
+ val input: DocumentReaderValue = temp
795
+
796
+ result.put("pageIndex", input.pageIndex)
797
+ result.put("sourceType", input.sourceType)
798
+ result.put("probability", input.probability)
799
+ result.put("value", input.value)
800
+ result.put("originalValue", input.originalValue)
801
+ result.put("boundRect", generateRect(input.boundRect))
802
+ result.put("originalSymbols", generateList(input.originalSymbols, ::generateDocumentReaderSymbol))
803
+ result.put("rfidOrigin", generateDocumentReaderRFIDOrigin(input.rfidOrigin))
804
+
805
+ return result
806
+ }
807
+
808
+ fun documentReaderTextFieldFromJSON(temp: JSONObject?): DocumentReaderTextField? {
809
+ temp ?: return null
810
+ val input: JSONObject = temp
811
+ val result = DocumentReaderTextField()
812
+
813
+ input.remove("getValue")
814
+ result.fieldType = input.optInt("fieldType")
815
+ result.lcid = input.optInt("lcid")
816
+ result.status = input.optInt("status")
817
+ result.value = input.optString("value")
818
+ result.values = listFromJSON(input.optJSONArray("values"), ::documentReaderValueFromJSON)!!
819
+ result.comparisonList = listFromJSON(input.optJSONArray("comparisonList"), ::documentReaderComparisonFromJSON)!!
820
+ result.validityList = listFromJSON(input.optJSONArray("validityList"), ::documentReaderValidityFromJSON)!!
821
+ result.comparisonStatus = input.optInt("comparisonStatus")
822
+ result.validityStatus = input.optInt("validityStatus")
823
+
824
+ return result
825
+ }
826
+
827
+ fun generateDocumentReaderTextField(temp: DocumentReaderTextField?, context: Context?): JSONObject? {
828
+ val result = JSONObject()
829
+ temp ?: return null
830
+ val input: DocumentReaderTextField = temp
831
+
832
+ result.put("fieldType", input.fieldType)
833
+ result.put("lcid", input.lcid)
834
+ result.put("status", input.status)
835
+ result.put("lcidName", input.getLcidName(context!!))
836
+ result.put("fieldName", input.getFieldName(context))
837
+ result.put("value", input.value)
838
+ result.put("getValue", generateDocumentReaderValue(input.value()))
839
+ result.put("values", generateList(input.values, ::generateDocumentReaderValue))
840
+ result.put("comparisonList", generateList(input.comparisonList, ::generateDocumentReaderComparison))
841
+ result.put("validityList", generateList(input.validityList, ::generateDocumentReaderValidity))
842
+ result.put("comparisonStatus", input.comparisonStatus)
843
+ result.put("validityStatus", input.validityStatus)
844
+
845
+ return result
846
+ }
847
+
848
+ fun documentReaderTextResultFromJSON(temp: JSONObject?): DocumentReaderTextResult? {
849
+ temp ?: return null
850
+ val input: JSONObject = temp
851
+ val result = DocumentReaderTextResult()
852
+
853
+ result.status = input.optInt("status")
854
+ result.comparisonStatus = input.optInt("comparisonStatus")
855
+ result.validityStatus = input.optInt("validityStatus")
856
+ result.availableSourceList = listFromJSON(input.optJSONArray("availableSourceList"), ::documentReaderTextSourceFromJSON)!!
857
+ result.fields = listFromJSON(input.optJSONArray("fields"), ::documentReaderTextFieldFromJSON)!!
858
+
859
+ return result
860
+ }
861
+
862
+ fun generateDocumentReaderTextResult(temp: DocumentReaderTextResult?, context: Context?): JSONObject? {
863
+ val result = JSONObject()
864
+ temp ?: return null
865
+ val input: DocumentReaderTextResult = temp
866
+
867
+ result.put("status", input.status)
868
+ result.put("comparisonStatus", input.comparisonStatus)
869
+ result.put("validityStatus", input.validityStatus)
870
+ result.put("availableSourceList", generateList(input.availableSourceList, ::generateDocumentReaderTextSource))
871
+ result.put("fields", generateList(input.fields, ::generateDocumentReaderTextField, context))
872
+
873
+ return result
874
+ }
875
+
876
+ fun coordinateFromJSON(temp: JSONObject?): Coordinate? {
877
+ temp ?: return null
878
+ val input: JSONObject = temp
879
+ val result = Coordinate()
880
+
881
+ result.x = input.optInt("x")
882
+ result.y = input.optInt("y")
883
+
884
+ return result
885
+ }
886
+
887
+ fun generateCoordinate(temp: Coordinate?): JSONObject? {
888
+ val result = JSONObject()
889
+ temp ?: return null
890
+ val input: Coordinate = temp
891
+
892
+ result.put("x", input.x)
893
+ result.put("y", input.y)
894
+
895
+ return result
896
+ }
897
+
898
+ fun elementPositionFromJSON(temp: JSONObject?): ElementPosition? {
899
+ temp ?: return null
900
+ val input: JSONObject = temp
901
+ val result = ElementPosition()
902
+
903
+ result.docFormat = input.optInt("docFormat")
904
+ result.width = input.optInt("width")
905
+ result.height = input.optInt("height")
906
+ result.dpi = input.optInt("dpi")
907
+ result.pageIndex = input.optInt("pageIndex")
908
+ result.inverse = input.optInt("inverse")
909
+ result.perspectiveTr = input.optInt("perspectiveTr")
910
+ result.objArea = input.optInt("objArea")
911
+ result.objIntAngleDev = input.optInt("objIntAngleDev")
912
+ result.resultStatus = input.optInt("resultStatus")
913
+ result.angle = input.optDouble("angle")
914
+ result.center = coordinateFromJSON(input.optJSONObject("center"))
915
+ result.leftTop = coordinateFromJSON(input.optJSONObject("leftTop"))
916
+ result.leftBottom = coordinateFromJSON(input.optJSONObject("leftBottom"))
917
+ result.rightTop = coordinateFromJSON(input.optJSONObject("rightTop"))
918
+ result.rightBottom = coordinateFromJSON(input.optJSONObject("rightBottom"))
919
+
920
+ return result
921
+ }
922
+
923
+ fun generateElementPosition(temp: ElementPosition?): JSONObject? {
924
+ val result = JSONObject()
925
+ temp ?: return null
926
+ val input: ElementPosition = temp
927
+
928
+ result.put("docFormat", input.docFormat)
929
+ result.put("width", input.width)
930
+ result.put("height", input.height)
931
+ result.put("dpi", input.dpi)
932
+ result.put("pageIndex", input.pageIndex)
933
+ result.put("inverse", input.inverse)
934
+ result.put("perspectiveTr", input.perspectiveTr)
935
+ result.put("objArea", input.objArea)
936
+ result.put("objIntAngleDev", input.objIntAngleDev)
937
+ result.put("resultStatus", input.resultStatus)
938
+ result.put("angle", input.angle)
939
+ result.put("center", generateCoordinate(input.center))
940
+ result.put("leftTop", generateCoordinate(input.leftTop))
941
+ result.put("leftBottom", generateCoordinate(input.leftBottom))
942
+ result.put("rightTop", generateCoordinate(input.rightTop))
943
+ result.put("rightBottom", generateCoordinate(input.rightBottom))
944
+
945
+ return result
946
+ }
947
+
948
+ fun imageQualityFromJSON(temp: JSONObject?): ImageQuality? {
949
+ temp ?: return null
950
+ val input: JSONObject = temp
951
+ val result = ImageQuality()
952
+
953
+ result.featureType = input.optInt("featureType")
954
+ result.result = input.optInt("result")
955
+ result.type = input.optInt("type")
956
+ result.boundRects = listFromJSON(input.optJSONArray("boundRects"), ::docReaderFieldRectFromJSON)!!
957
+
958
+ return result
959
+ }
960
+
961
+ fun generateImageQuality(temp: ImageQuality?): JSONObject? {
962
+ val result = JSONObject()
963
+ temp ?: return null
964
+ val input: ImageQuality = temp
965
+
966
+ result.put("featureType", input.featureType)
967
+ result.put("result", input.result)
968
+ result.put("type", input.type)
969
+ result.put("boundRects", generateList(input.boundRects, ::generateDocReaderFieldRect))
970
+
971
+ return result
972
+ }
973
+
974
+ fun imageQualityGroupFromJSON(temp: JSONObject?): ImageQualityGroup? {
975
+ temp ?: return null
976
+ val input: JSONObject = temp
977
+ val result = ImageQualityGroup()
978
+
979
+ result.count = input.optInt("count")
980
+ result.result = input.optInt("result")
981
+ result.pageIndex = input.optInt("pageIndex")
982
+ result.imageQualityList = listFromJSON(input.optJSONArray("imageQualityList"), ::imageQualityFromJSON)!!
983
+
984
+ return result
985
+ }
986
+
987
+ fun generateImageQualityGroup(temp: ImageQualityGroup?): JSONObject? {
988
+ val result = JSONObject()
989
+ temp ?: return null
990
+ val input: ImageQualityGroup = temp
991
+
992
+ result.put("count", input.count)
993
+ result.put("result", input.result)
994
+ result.put("imageQualityList", generateList(input.imageQualityList, ::generateImageQuality))
995
+ result.put("pageIndex", input.pageIndex)
996
+
997
+ return result
998
+ }
999
+
1000
+ fun cameraSizeFromJSON(input: JSONObject): Pair<Int, Int> {
1001
+ val width = input.getInt("width")
1002
+ val height = input.getInt("height")
1003
+ return Pair(width, height)
1004
+ }
1005
+
1006
+ fun generateCameraSize(width: Int?, height: Int?): JSONObject? {
1007
+ width ?: return null
1008
+ height ?: return null
1009
+ val result = JSONObject()
1010
+ result.put("width", width)
1011
+ result.put("height", height)
1012
+ return result
1013
+ }
1014
+
1015
+ fun documentReaderDocumentTypeFromJSON(temp: JSONObject?): DocumentReaderDocumentType? {
1016
+ temp ?: return null
1017
+ val input: JSONObject = temp
1018
+ val result = DocumentReaderDocumentType()
1019
+
1020
+ result.pageIndex = input.optInt("pageIndex")
1021
+ result.documentID = input.optInt("documentID")
1022
+ result.dType = input.optInt("dType")
1023
+ result.dFormat = input.optInt("dFormat")
1024
+ result.dMRZ = input.optBoolean("dMRZ")
1025
+ result.isDeprecated = input.optBoolean("isDeprecated")
1026
+ result.name = input.optString("name")
1027
+ result.ICAOCode = input.optString("ICAOCode")
1028
+ result.dDescription = input.optString("dDescription")
1029
+ result.dCountryName = input.optString("dCountryName")
1030
+ result.dYear = input.optString("dYear")
1031
+ result.FDSID = input.optJSONArray("FDSID").toIntArray()
1032
+
1033
+ return result
1034
+ }
1035
+
1036
+ fun generateDocumentReaderDocumentType(temp: DocumentReaderDocumentType?): JSONObject? {
1037
+ val result = JSONObject()
1038
+ temp ?: return null
1039
+ val input: DocumentReaderDocumentType = temp
1040
+
1041
+ result.put("pageIndex", input.pageIndex)
1042
+ result.put("documentID", input.documentID)
1043
+ result.put("dType", input.dType)
1044
+ result.put("dFormat", input.dFormat)
1045
+ result.put("dMRZ", input.dMRZ)
1046
+ result.put("isDeprecated", input.isDeprecated)
1047
+ result.put("name", input.name)
1048
+ result.put("ICAOCode", input.ICAOCode)
1049
+ result.put("dDescription", input.dDescription)
1050
+ result.put("dYear", input.dYear)
1051
+ result.put("dCountryName", input.dCountryName)
1052
+ result.put("FDSID", input.FDSID.generate())
1053
+
1054
+ return result
1055
+ }
1056
+
1057
+ fun generateDocumentReaderNotification(temp: DocumentReaderNotification?): JSONObject? {
1058
+ val result = JSONObject()
1059
+ temp ?: return null
1060
+ val input: DocumentReaderNotification = temp
1061
+
1062
+ result.put("notificationCode", input.notificationCode)
1063
+ result.put("dataFileType", input.dataFileType)
1064
+ result.put("progress", input.progress)
1065
+
1066
+ return result
1067
+ }
1068
+
1069
+ fun accessControlProcedureTypeFromJSON(temp: JSONObject?): AccessControlProcedureType? {
1070
+ temp ?: return null
1071
+ val input: JSONObject = temp
1072
+ val result = AccessControlProcedureType()
1073
+
1074
+ result.activeOptionIdx = input.optInt("activeOptionIdx")
1075
+ result.type = input.optInt("type")
1076
+ result.status = input.optInt("status").toLong()
1077
+ result.notifications = listFromJSON(input.optJSONArray("notifications")!!)
1078
+
1079
+ return result
1080
+ }
1081
+
1082
+ fun generateAccessControlProcedureType(temp: AccessControlProcedureType?): JSONObject? {
1083
+ val result = JSONObject()
1084
+ temp ?: return null
1085
+ val input: AccessControlProcedureType = temp
1086
+
1087
+ result.put("activeOptionIdx", input.activeOptionIdx)
1088
+ result.put("type", input.type)
1089
+ result.put("status", input.status)
1090
+ result.put("notifications", generateList(input.notifications))
1091
+
1092
+ return result
1093
+ }
1094
+
1095
+ fun fileDataFromJSON(temp: JSONObject?): FileData? {
1096
+ temp ?: return null
1097
+ val input: JSONObject = temp
1098
+ val result = FileData()
1099
+
1100
+ result.length = input.optInt("length")
1101
+ result.type = input.optInt("type")
1102
+ result.status = input.optInt("status").toLong()
1103
+ result.data = input.optString("data")
1104
+
1105
+ return result
1106
+ }
1107
+
1108
+ fun generateFileData(temp: FileData?): JSONObject? {
1109
+ val result = JSONObject()
1110
+ temp ?: return null
1111
+ val input: FileData = temp
1112
+
1113
+ result.put("length", input.length)
1114
+ result.put("type", input.type)
1115
+ result.put("status", input.status)
1116
+ result.put("data", input.data)
1117
+
1118
+ return result
1119
+ }
1120
+
1121
+ fun certificateDataFromJSON(temp: JSONObject?): CertificateData? {
1122
+ temp ?: return null
1123
+ val input: JSONObject = temp
1124
+ val result = CertificateData()
1125
+
1126
+ result.length = input.optInt("length")
1127
+ result.data = input.optString("data")
1128
+
1129
+ return result
1130
+ }
1131
+
1132
+ fun generateCertificateData(temp: CertificateData?): JSONObject? {
1133
+ val result = JSONObject()
1134
+ temp ?: return null
1135
+ val input: CertificateData = temp
1136
+
1137
+ result.put("length", input.length)
1138
+ result.put("data", input.data)
1139
+
1140
+ return result
1141
+ }
1142
+
1143
+ fun securityObjectCertificatesFromJSON(temp: JSONObject?): SecurityObjectCertificates? {
1144
+ temp ?: return null
1145
+ val input: JSONObject = temp
1146
+ val result = SecurityObjectCertificates()
1147
+
1148
+ result.securityObject = certificateDataFromJSON(input.optJSONObject("securityObject"))
1149
+
1150
+ return result
1151
+ }
1152
+
1153
+ fun generateSecurityObjectCertificates(temp: SecurityObjectCertificates?): JSONObject? {
1154
+ val result = JSONObject()
1155
+ temp ?: return null
1156
+ val input: SecurityObjectCertificates = temp
1157
+
1158
+ result.put("securityObject", generateCertificateData(input.securityObject))
1159
+
1160
+ return result
1161
+ }
1162
+
1163
+ fun fileFromJSON(temp: JSONObject?): File? {
1164
+ temp ?: return null
1165
+ val input: JSONObject = temp
1166
+ val result = File()
1167
+
1168
+ result.readingTime = input.optInt("readingTime")
1169
+ result.type = input.optInt("type")
1170
+ result.pAStatus = input.optLong("pAStatus")
1171
+ result.readingStatus = input.optInt("readingStatus").toLong()
1172
+ result.fileID = input.optString("fileID")
1173
+ result.fileData = fileDataFromJSON(input.optJSONObject("fileData"))
1174
+ result.certificates = securityObjectCertificatesFromJSON(input.optJSONObject("certificates"))
1175
+ result.docFieldsText = listFromJSON(input.optJSONArray("docFieldsText")!!)
1176
+ result.docFieldsGraphics = listFromJSON(input.optJSONArray("docFieldsGraphics")!!)
1177
+ result.docFieldsOriginals = listFromJSON(input.optJSONArray("docFieldsOriginals")!!)
1178
+ result.notifications = listFromJSON(input.optJSONArray("notifications")!!)
1179
+
1180
+ return result
1181
+ }
1182
+
1183
+ fun generateFile(temp: File?, context: Context?): JSONObject? {
1184
+ val result = JSONObject()
1185
+ temp ?: return null
1186
+ val input: File = temp
1187
+
1188
+ result.put("readingTime", input.readingTime)
1189
+ result.put("type", input.type)
1190
+ result.put("typeName", eRFID_DataFile_Type.getTranslation(context, input.type))
1191
+ result.put("pAStatus", input.pAStatus)
1192
+ result.put("readingStatus", input.readingStatus)
1193
+ result.put("fileID", input.fileID)
1194
+ result.put("fileData", generateFileData(input.fileData))
1195
+ result.put("certificates", generateSecurityObjectCertificates(input.certificates))
1196
+ result.put("docFieldsText", generateList(input.docFieldsText))
1197
+ result.put("docFieldsGraphics", generateList(input.docFieldsGraphics))
1198
+ result.put("docFieldsOriginals", generateList(input.docFieldsOriginals))
1199
+ result.put("notifications", generateList(input.notifications))
1200
+
1201
+ return result
1202
+ }
1203
+
1204
+ fun applicationFromJSON(temp: JSONObject?): Application? {
1205
+ temp ?: return null
1206
+ val input: JSONObject = temp
1207
+ val result = Application()
1208
+
1209
+ result.type = input.optInt("type")
1210
+ result.status = input.optInt("status")
1211
+ result.applicationID = input.optString("applicationID")
1212
+ result.dataHashAlgorithm = input.optString("dataHashAlgorithm")
1213
+ result.unicodeVersion = input.optString("unicodeVersion")
1214
+ result.version = input.optString("version")
1215
+ result.files = listFromJSON(input.optJSONArray("files"), ::fileFromJSON)!!
1216
+
1217
+ return result
1218
+ }
1219
+
1220
+ fun generateApplication(temp: Application?, context: Context?): JSONObject? {
1221
+ val result = JSONObject()
1222
+ temp ?: return null
1223
+ val input: Application = temp
1224
+
1225
+ result.put("type", input.type)
1226
+ result.put("status", input.status)
1227
+ result.put("applicationID", input.applicationID)
1228
+ result.put("dataHashAlgorithm", input.dataHashAlgorithm)
1229
+ result.put("unicodeVersion", input.unicodeVersion)
1230
+ result.put("version", input.version)
1231
+ result.put("files", generateList(input.files, ::generateFile, context))
1232
+
1233
+ return result
1234
+ }
1235
+
1236
+ fun valueFromJSON(temp: JSONObject?): Value? {
1237
+ temp ?: return null
1238
+ val input: JSONObject = temp
1239
+ val result = Value()
1240
+
1241
+ result.length = input.optInt("length")
1242
+ result.type = input.optInt("type")
1243
+ result.status = input.optInt("status").toLong()
1244
+ result.data = input.optString("data")
1245
+ result.format = input.optString("format")
1246
+
1247
+ return result
1248
+ }
1249
+
1250
+ fun generateValue(temp: Value?): JSONObject? {
1251
+ val result = JSONObject()
1252
+ temp ?: return null
1253
+ val input: Value = temp
1254
+
1255
+ result.put("length", input.length)
1256
+ result.put("type", input.type)
1257
+ result.put("status", input.status)
1258
+ result.put("data", input.data)
1259
+ result.put("format", input.format)
1260
+
1261
+ return result
1262
+ }
1263
+
1264
+ fun attributeFromJSON(temp: JSONObject?): Attribute? {
1265
+ temp ?: return null
1266
+ val input: JSONObject = temp
1267
+ val result = Attribute()
1268
+
1269
+ result.type = input.optString("type")
1270
+ result.value = valueFromJSON(input.optJSONObject("value"))
1271
+
1272
+ return result
1273
+ }
1274
+
1275
+ fun generateAttribute(temp: Attribute?): JSONObject? {
1276
+ val result = JSONObject()
1277
+ temp ?: return null
1278
+ val input: Attribute = temp
1279
+
1280
+ result.put("type", input.type)
1281
+ result.put("value", generateValue(input.value))
1282
+
1283
+ return result
1284
+ }
1285
+
1286
+ fun authorityFromJSON(temp: JSONObject?): Authority? {
1287
+ temp ?: return null
1288
+ val input: JSONObject = temp
1289
+ val result = Authority()
1290
+
1291
+ result.data = input.optString("data")
1292
+ result.friendlyName = valueFromJSON(input.optJSONObject("friendlyName"))
1293
+ result.attributes = listFromJSON(input.optJSONArray("attributes"), ::attributeFromJSON)!!
1294
+
1295
+ return result
1296
+ }
1297
+
1298
+ fun generateAuthority(temp: Authority?): JSONObject? {
1299
+ val result = JSONObject()
1300
+ temp ?: return null
1301
+ val input: Authority = temp
1302
+
1303
+ result.put("data", input.data)
1304
+ result.put("friendlyName", generateValue(input.friendlyName))
1305
+ result.put("attributes", generateList(input.attributes, ::generateAttribute))
1306
+
1307
+ return result
1308
+ }
1309
+
1310
+ fun extensionFromJSON(temp: JSONObject?): Extension? {
1311
+ temp ?: return null
1312
+ val input: JSONObject = temp
1313
+ val result = Extension()
1314
+
1315
+ result.data = input.optString("data")
1316
+ result.type = input.optString("type")
1317
+
1318
+ return result
1319
+ }
1320
+
1321
+ fun generateExtension(temp: Extension?): JSONObject? {
1322
+ val result = JSONObject()
1323
+ temp ?: return null
1324
+ val input: Extension = temp
1325
+
1326
+ result.put("data", input.data)
1327
+ result.put("type", input.type)
1328
+
1329
+ return result
1330
+ }
1331
+
1332
+ fun validityFromJSON(temp: JSONObject?): Validity? {
1333
+ temp ?: return null
1334
+ val input: JSONObject = temp
1335
+ val result = Validity()
1336
+
1337
+ result.notAfter = valueFromJSON(input.optJSONObject("notAfter"))
1338
+ result.notBefore = valueFromJSON(input.optJSONObject("notBefore"))
1339
+
1340
+ return result
1341
+ }
1342
+
1343
+ fun generateValidity(temp: Validity?): JSONObject? {
1344
+ val result = JSONObject()
1345
+ temp ?: return null
1346
+ val input: Validity = temp
1347
+
1348
+ result.put("notAfter", generateValue(input.notAfter))
1349
+ result.put("notBefore", generateValue(input.notBefore))
1350
+
1351
+ return result
1352
+ }
1353
+
1354
+ fun certificateChainFromJSON(temp: JSONObject?): CertificateChain? {
1355
+ temp ?: return null
1356
+ val input: JSONObject = temp
1357
+ val result = CertificateChain()
1358
+
1359
+ result.origin = input.optInt("origin")
1360
+ result.type = input.optInt("type")
1361
+ result.version = input.optInt("version")
1362
+ result.paStatus = input.optInt("paStatus").toLong()
1363
+ result.serialNumber = input.optString("serialNumber")
1364
+ result.signatureAlgorithm = input.optString("signatureAlgorithm")
1365
+ result.subjectPKAlgorithm = input.optString("subjectPKAlgorithm")
1366
+ result.fileName = valueFromJSON(input.optJSONObject("fileName"))
1367
+ result.validity = validityFromJSON(input.optJSONObject("validity"))
1368
+ result.issuer = authorityFromJSON(input.optJSONObject("issuer"))
1369
+ result.subject = authorityFromJSON(input.optJSONObject("subject"))
1370
+ result.notifications = listFromJSON(input.optJSONArray("notifications")!!)
1371
+ result.extensions = listFromJSON(input.optJSONArray("extensions"), ::extensionFromJSON)!!
1372
+
1373
+ return result
1374
+ }
1375
+
1376
+ fun generateCertificateChain(temp: CertificateChain?): JSONObject? {
1377
+ val result = JSONObject()
1378
+ temp ?: return null
1379
+ val input: CertificateChain = temp
1380
+
1381
+ result.put("origin", input.origin)
1382
+ result.put("type", input.type)
1383
+ result.put("version", input.version)
1384
+ result.put("paStatus", input.paStatus)
1385
+ result.put("serialNumber", input.serialNumber)
1386
+ result.put("signatureAlgorithm", input.signatureAlgorithm)
1387
+ result.put("subjectPKAlgorithm", input.subjectPKAlgorithm)
1388
+ result.put("fileName", generateValue(input.fileName))
1389
+ result.put("validity", generateValidity(input.validity))
1390
+ result.put("issuer", generateAuthority(input.issuer))
1391
+ result.put("subject", generateAuthority(input.subject))
1392
+ result.put("notifications", generateList(input.notifications))
1393
+ result.put("extensions", generateList(input.extensions, ::generateExtension))
1394
+
1395
+ return result
1396
+ }
1397
+
1398
+ fun signerInfoFromJSON(temp: JSONObject?): SignerInfo? {
1399
+ temp ?: return null
1400
+ val input: JSONObject = temp
1401
+ val result = SignerInfo()
1402
+
1403
+ result.version = input.optInt("version")
1404
+ result.paStatus = input.optInt("paStatus").toLong()
1405
+ result.dataToHash = input.optString("dataToHash")
1406
+ result.digestAlgorithm = input.optString("digestAlgorithm")
1407
+ result.signatureAlgorithm = input.optString("signatureAlgorithm")
1408
+ result.serialNumber = valueFromJSON(input.optJSONObject("serialNumber"))
1409
+ result.signature = valueFromJSON(input.optJSONObject("signature"))
1410
+ result.subjectKeyIdentifier = valueFromJSON(input.optJSONObject("subjectKeyIdentifier"))
1411
+ result.issuer = authorityFromJSON(input.optJSONObject("issuer"))
1412
+ result.notifications = listFromJSON(input.optJSONArray("notifications")!!)
1413
+ result.signedAttributes = listFromJSON(input.optJSONArray("signedAttributes"), ::extensionFromJSON)!!
1414
+ result.certificateChain = listFromJSON(input.optJSONArray("certificateChain"), ::certificateChainFromJSON)!!
1415
+
1416
+ return result
1417
+ }
1418
+
1419
+ fun generateSignerInfo(temp: SignerInfo?): JSONObject? {
1420
+ val result = JSONObject()
1421
+ temp ?: return null
1422
+ val input: SignerInfo = temp
1423
+
1424
+ result.put("version", input.version)
1425
+ result.put("paStatus", input.paStatus)
1426
+ result.put("dataToHash", input.dataToHash)
1427
+ result.put("digestAlgorithm", input.digestAlgorithm)
1428
+ result.put("signatureAlgorithm", input.signatureAlgorithm)
1429
+ result.put("serialNumber", generateValue(input.serialNumber))
1430
+ result.put("signature", generateValue(input.signature))
1431
+ result.put("subjectKeyIdentifier", generateValue(input.subjectKeyIdentifier))
1432
+ result.put("issuer", generateAuthority(input.issuer))
1433
+ result.put("notifications", generateList(input.notifications))
1434
+ result.put("signedAttributes", generateList(input.signedAttributes, ::generateExtension))
1435
+ result.put("certificateChain", generateList(input.certificateChain, ::generateCertificateChain))
1436
+
1437
+ return result
1438
+ }
1439
+
1440
+ fun securityObjectFromJSON(temp: JSONObject?): SecurityObject? {
1441
+ temp ?: return null
1442
+ val input: JSONObject = temp
1443
+ val result = SecurityObject()
1444
+
1445
+ result.fileReference = input.optInt("fileReference")
1446
+ result.version = input.optInt("version")
1447
+ result.objectType = input.optString("objectType")
1448
+ result.notifications = listFromJSON(input.optJSONArray("notifications")!!)
1449
+ result.signerInfos = listFromJSON(input.optJSONArray("signerInfos"), ::signerInfoFromJSON)!!
1450
+
1451
+ return result
1452
+ }
1453
+
1454
+ fun generateSecurityObject(temp: SecurityObject?): JSONObject? {
1455
+ val result = JSONObject()
1456
+ temp ?: return null
1457
+ val input: SecurityObject = temp
1458
+
1459
+ result.put("fileReference", input.fileReference)
1460
+ result.put("version", input.version)
1461
+ result.put("objectType", input.objectType)
1462
+ result.put("notifications", generateList(input.notifications))
1463
+ result.put("signerInfos", generateList(input.signerInfos, ::generateSignerInfo))
1464
+
1465
+ return result
1466
+ }
1467
+
1468
+ fun cardPropertiesFromJSON(temp: JSONObject?): CardProperties? {
1469
+ temp ?: return null
1470
+ val input: JSONObject = temp
1471
+ val result = CardProperties()
1472
+
1473
+ result.aTQA = input.optInt("aTQA")
1474
+ result.bitRateR = input.optInt("bitRateR")
1475
+ result.bitRateS = input.optInt("bitRateS")
1476
+ result.chipTypeA = input.optInt("chipTypeA")
1477
+ result.mifareMemory = input.optInt("mifareMemory")
1478
+ result.rfidType = input.optInt("rfidType")
1479
+ result.sAK = input.optInt("sAK")
1480
+ result.support4 = input.optBoolean("support4")
1481
+ result.supportMifare = input.optBoolean("supportMifare")
1482
+ result.aTQB = input.optString("aTQB")
1483
+ result.aTR = input.optString("aTR")
1484
+ result.baudrate1 = input.optString("baudrate1")
1485
+ result.baudrate2 = input.optString("baudrate2")
1486
+ result.uID = input.optString("uID")
1487
+
1488
+ return result
1489
+ }
1490
+
1491
+ fun generateCardProperties(temp: CardProperties?): JSONObject? {
1492
+ val result = JSONObject()
1493
+ temp ?: return null
1494
+ val input: CardProperties = temp
1495
+
1496
+ result.put("aTQA", input.aTQA)
1497
+ result.put("bitRateR", input.bitRateR)
1498
+ result.put("bitRateS", input.bitRateS)
1499
+ result.put("chipTypeA", input.chipTypeA)
1500
+ result.put("mifareMemory", input.mifareMemory)
1501
+ result.put("rfidType", input.rfidType)
1502
+ result.put("sAK", input.sAK)
1503
+ result.put("support4", input.support4)
1504
+ result.put("supportMifare", input.supportMifare)
1505
+ result.put("aTQB", input.aTQB)
1506
+ result.put("aTR", input.aTR)
1507
+ result.put("baudrate1", input.baudrate1)
1508
+ result.put("baudrate2", input.baudrate2)
1509
+ result.put("uID", input.uID)
1510
+
1511
+ return result
1512
+ }
1513
+
1514
+ fun rfidSessionDataFromJSON(temp: JSONObject?): RFIDSessionData? {
1515
+ temp ?: return null
1516
+ val input: JSONObject = temp
1517
+ val result = RFIDSessionData()
1518
+
1519
+ result.totalBytesReceived = input.optInt("totalBytesReceived")
1520
+ result.totalBytesSent = input.optInt("totalBytesSent")
1521
+ result.status = input.optInt("status").toLong()
1522
+ result.extLeSupport = input.optLong("extLeSupport")
1523
+ result.processTime = input.optLong("processTime")
1524
+ result.cardProperties = cardPropertiesFromJSON(input.optJSONObject("cardProperties"))
1525
+ result.accessControls = listFromJSON(input.optJSONArray("accessControls"), ::accessControlProcedureTypeFromJSON)!!
1526
+ result.applications = listFromJSON(input.optJSONArray("applications"), ::applicationFromJSON)!!
1527
+ result.securityObjects = listFromJSON(input.optJSONArray("securityObjects"), ::securityObjectFromJSON)!!
1528
+ result.dataFields = listFromJSON(input.optJSONArray("dataFields"), ::dataFieldFromJSON)!!
1529
+ result.dataGroups = input.optJSONArray("dataGroups").toIntArray()
1530
+
1531
+ return result
1532
+ }
1533
+
1534
+ fun generateRFIDSessionData(temp: RFIDSessionData?, context: Context?): JSONObject? {
1535
+ val result = JSONObject()
1536
+ temp ?: return null
1537
+ val input: RFIDSessionData = temp
1538
+
1539
+ result.put("totalBytesReceived", input.totalBytesReceived)
1540
+ result.put("totalBytesSent", input.totalBytesSent)
1541
+ result.put("status", input.status)
1542
+ result.put("extLeSupport", input.extLeSupport)
1543
+ result.put("processTime", input.processTime)
1544
+ result.put("cardProperties", generateCardProperties(input.cardProperties))
1545
+ result.put("accessControls", generateList(input.accessControls, ::generateAccessControlProcedureType))
1546
+ result.put("applications", generateList(input.applications, ::generateApplication, context))
1547
+ result.put("securityObjects", generateList(input.securityObjects, ::generateSecurityObject))
1548
+ result.put("dataGroups", input.dataGroups.generate())
1549
+ result.put("dataFields", generateList(input.dataFields, ::generateDataField))
1550
+
1551
+ return result
1552
+ }
1553
+
1554
+ fun dataFieldFromJSON(temp: JSONObject?): DataField? {
1555
+ temp ?: return null
1556
+ val input: JSONObject = temp
1557
+ val result = DataField()
1558
+
1559
+ result.data = input.optString("data")
1560
+ result.fieldType = input.optInt("fieldType")
1561
+
1562
+ return result
1563
+ }
1564
+
1565
+ fun generateDataField(temp: DataField?): JSONObject? {
1566
+ val result = JSONObject()
1567
+ temp ?: return null
1568
+ val input: DataField = temp
1569
+
1570
+ result.put("data", input.data)
1571
+ result.put("fieldType", input.fieldType)
1572
+
1573
+ return result
1574
+ }
1575
+
1576
+ fun documentReaderAuthenticityCheckFromJSON(temp: JSONObject?): DocumentReaderAuthenticityCheck? {
1577
+ temp ?: return null
1578
+ val input: JSONObject = temp
1579
+ val result = DocumentReaderAuthenticityCheck()
1580
+
1581
+ result.type = input.optInt("type")
1582
+ result.pageIndex = input.optInt("pageIndex")
1583
+ result.elements = listFromJSON(input.optJSONArray("elements"), ::documentReaderAuthenticityElementFromJSON)!!
1584
+
1585
+ return result
1586
+ }
1587
+
1588
+ fun generateDocumentReaderAuthenticityCheck(temp: DocumentReaderAuthenticityCheck?, context: Context?): JSONObject? {
1589
+ val result = JSONObject()
1590
+ temp ?: return null
1591
+ val input: DocumentReaderAuthenticityCheck = temp
1592
+
1593
+ result.put("type", input.type)
1594
+ result.put("status", input.status)
1595
+ result.put("typeName", input.getTypeName(context))
1596
+ result.put("pageIndex", input.pageIndex)
1597
+ result.put("elements", generateList(input.elements, ::generateDocumentReaderAuthenticityElement, context))
1598
+
1599
+ return result
1600
+ }
1601
+
1602
+ fun pdf417InfoFromJSON(temp: JSONObject?): PDF417Info? {
1603
+ temp ?: return null
1604
+ val input: JSONObject = temp
1605
+ val result = PDF417Info()
1606
+
1607
+ result.errorLevel = input.optInt("errorLevel")
1608
+ result.columns = input.optInt("columns")
1609
+ result.rows = input.optInt("rows")
1610
+
1611
+ return result
1612
+ }
1613
+
1614
+ fun generatePDF417Info(temp: PDF417Info?): JSONObject? {
1615
+ val result = JSONObject()
1616
+ temp ?: return null
1617
+ val input: PDF417Info = temp
1618
+
1619
+ result.put("errorLevel", input.errorLevel)
1620
+ result.put("columns", input.columns)
1621
+ result.put("rows", input.rows)
1622
+
1623
+ return result
1624
+ }
1625
+
1626
+ fun documentReaderBarcodeResultFromJSON(temp: JSONObject?): DocumentReaderBarcodeResult? {
1627
+ temp ?: return null
1628
+ val input: JSONObject = temp
1629
+ val result = DocumentReaderBarcodeResult()
1630
+
1631
+ result.fields = listFromJSON(input.optJSONArray("fields"), ::documentReaderBarcodeFieldFromJSON)!!
1632
+
1633
+ return result
1634
+ }
1635
+
1636
+ fun generateDocumentReaderBarcodeResult(temp: DocumentReaderBarcodeResult?): JSONObject? {
1637
+ val result = JSONObject()
1638
+ temp ?: return null
1639
+ val input: DocumentReaderBarcodeResult = temp
1640
+
1641
+ result.put("fields", generateList(input.fields, ::generateDocumentReaderBarcodeField))
1642
+
1643
+ return result
1644
+ }
1645
+
1646
+ fun documentReaderBarcodeFieldFromJSON(temp: JSONObject?): DocumentReaderBarcodeField? {
1647
+ temp ?: return null
1648
+ val input: JSONObject = temp
1649
+ val result = DocumentReaderBarcodeField()
1650
+
1651
+ result.barcodeType = input.optInt("barcodeType")
1652
+ result.status = input.optInt("status")
1653
+ result.pageIndex = input.optInt("pageIndex")
1654
+ result.pdf417Info = pdf417InfoFromJSON(input.optJSONObject("pdf417Info"))
1655
+ result.data = byteArrayFromBase64(input.optString("data"))
1656
+
1657
+ return result
1658
+ }
1659
+
1660
+ fun generateDocumentReaderBarcodeField(temp: DocumentReaderBarcodeField?): JSONObject? {
1661
+ val result = JSONObject()
1662
+ temp ?: return null
1663
+ val input: DocumentReaderBarcodeField = temp
1664
+
1665
+ result.put("barcodeType", input.barcodeType)
1666
+ result.put("status", input.status)
1667
+ result.put("pageIndex", input.pageIndex)
1668
+ result.put("pdf417Info", generatePDF417Info(input.pdf417Info))
1669
+ result.put("data", generateByteArray(input.data))
1670
+
1671
+ return result
1672
+ }
1673
+
1674
+ fun documentReaderAuthenticityResultFromJSON(temp: JSONObject?): DocumentReaderAuthenticityResult? {
1675
+ temp ?: return null
1676
+ val input: JSONObject = temp
1677
+ val result = DocumentReaderAuthenticityResult()
1678
+
1679
+ result.checks = listFromJSON(input.optJSONArray("checks"), ::documentReaderAuthenticityCheckFromJSON)!!
1680
+
1681
+ return result
1682
+ }
1683
+
1684
+ fun generateDocumentReaderAuthenticityResult(temp: DocumentReaderAuthenticityResult?, context: Context?): JSONObject? {
1685
+ val result = JSONObject()
1686
+ temp ?: return null
1687
+ val input: DocumentReaderAuthenticityResult = temp
1688
+
1689
+ result.put("status", input.status)
1690
+ result.put("checks", generateList(input.checks, ::generateDocumentReaderAuthenticityCheck, context))
1691
+
1692
+ return result
1693
+ }
1694
+
1695
+ fun documentReaderAuthenticityElementFromJSON(temp: JSONObject?): DocumentReaderAuthenticityElement? {
1696
+ temp ?: return null
1697
+ val input: JSONObject = temp
1698
+ val result = DocumentReaderAuthenticityElement()
1699
+
1700
+ result.status = input.optInt("status")
1701
+ result.elementType = input.optInt("elementType")
1702
+ result.elementDiagnose = input.optInt("elementDiagnose")
1703
+
1704
+ return result
1705
+ }
1706
+
1707
+ fun generateDocumentReaderAuthenticityElement(temp: DocumentReaderAuthenticityElement?, context: Context?): JSONObject? {
1708
+ val result = JSONObject()
1709
+ temp ?: return null
1710
+ val input: DocumentReaderAuthenticityElement = temp
1711
+
1712
+ result.put("status", input.status)
1713
+ result.put("elementType", input.elementType)
1714
+ result.put("elementDiagnose", input.elementDiagnose)
1715
+ result.put("elementTypeName", input.getElementTypeName(context))
1716
+ result.put("elementDiagnoseName", input.getElementDiagnoseName(context))
1717
+
1718
+ return result
1719
+ }
1720
+
1721
+ fun paResourcesIssuerFromJSON(temp: JSONObject?): PAResourcesIssuer? {
1722
+ temp ?: return null
1723
+ val input: JSONObject = temp
1724
+ val result = PAResourcesIssuer()
1725
+
1726
+ result.data = byteArrayFromBase64(input.optString("data"))
1727
+ result.friendlyName = input.optString("friendlyName")
1728
+ result.attributes = arrayFromJSON(input.optJSONArray("attributes"), ::paAttributeFromJSON, arrayOfNulls(input.optJSONArray("attributes")?.length() ?: 0))
1729
+
1730
+ return result
1731
+ }
1732
+
1733
+ fun generatePAResourcesIssuer(temp: PAResourcesIssuer?): JSONObject? {
1734
+ val result = JSONObject()
1735
+ temp ?: return null
1736
+ val input: PAResourcesIssuer = temp
1737
+
1738
+ result.put("data", generateByteArray(input.data))
1739
+ result.put("friendlyName", input.friendlyName)
1740
+ result.put("attributes", generateArray(input.attributes, ::generatePAAttribute))
1741
+
1742
+ return result
1743
+ }
1744
+
1745
+ fun paAttributeFromJSON(temp: JSONObject?): PAAttribute? {
1746
+ temp ?: return null
1747
+ val input: JSONObject = temp
1748
+ val result = PAAttribute()
1749
+
1750
+ result.type = input.optString("type")
1751
+ result.value = input.optString("value")
1752
+
1753
+ return result
1754
+ }
1755
+
1756
+ fun generatePAAttribute(temp: PAAttribute?): JSONObject? {
1757
+ val result = JSONObject()
1758
+ temp ?: return null
1759
+ val input: PAAttribute = temp
1760
+
1761
+ result.put("type", input.type)
1762
+ result.put("value", input.value)
1763
+
1764
+ return result
1765
+ }
1766
+
1767
+ fun taChallengeFromJSON(temp: JSONObject?): TAChallenge? {
1768
+ temp ?: return null
1769
+ val input: JSONObject = temp
1770
+ val result = TAChallenge()
1771
+
1772
+ result.data = byteArrayFromBase64(input.optString("data"))
1773
+ result.auxPCD = input.optString("auxPCD")
1774
+ result.challengePICC = input.optString("challengePICC")
1775
+ result.hashPK = input.optString("hashPK")
1776
+ result.idPICC = input.optString("idPICC")
1777
+
1778
+ return result
1779
+ }
1780
+
1781
+ fun generateTAChallenge(temp: TAChallenge?): JSONObject? {
1782
+ val result = JSONObject()
1783
+ temp ?: return null
1784
+ val input: TAChallenge = temp
1785
+
1786
+ result.put("data", generateByteArray(input.data))
1787
+ result.put("auxPCD", input.auxPCD)
1788
+ result.put("challengePICC", input.challengePICC)
1789
+ result.put("hashPK", input.hashPK)
1790
+ result.put("idPICC", input.idPICC)
1791
+
1792
+ return result
1793
+ }
1794
+
1795
+ fun documentReaderResultsStatusFromJSON(temp: JSONObject?): DocumentReaderResultsStatus? {
1796
+ temp ?: return null
1797
+ val input: JSONObject = temp
1798
+
1799
+ input.remove("detailsRFID")
1800
+
1801
+ return DocumentReaderResultsStatus.fromJson(input)
1802
+ }
1803
+
1804
+ fun generateDocumentReaderResultsStatus(temp: DocumentReaderResultsStatus?): JSONObject? {
1805
+ val result = JSONObject()
1806
+ temp ?: return null
1807
+ val input: DocumentReaderResultsStatus = temp
1808
+
1809
+ result.put("overallStatus", input.overallStatus)
1810
+ result.put("optical", input.optical)
1811
+ result.put("detailsOptical", generateDetailsOptical(input.detailsOptical))
1812
+ result.put("rfid", input.rfid)
1813
+ result.put("detailsRFID", generateDetailsRFID(input.detailsRFID))
1814
+ result.put("portrait", input.portrait)
1815
+ result.put("stopList", input.stopList)
1816
+
1817
+ return result
1818
+ }
1819
+
1820
+ fun generateDetailsOptical(temp: DetailsOptical?): JSONObject? {
1821
+ val result = JSONObject()
1822
+ temp ?: return null
1823
+ val input: DetailsOptical = temp
1824
+
1825
+ result.put("overallStatus", input.overallStatus)
1826
+ result.put("mrz", input.mrz)
1827
+ result.put("text", input.text)
1828
+ result.put("docType", input.docType)
1829
+ result.put("security", input.security)
1830
+ result.put("imageQA", input.imageQA)
1831
+ result.put("expiry", input.expiry)
1832
+ result.put("vds", input.vds)
1833
+ result.put("pagesCount", input.pagesCount)
1834
+
1835
+ return result
1836
+ }
1837
+
1838
+ fun generateDetailsRFID(temp: DetailsRFID?): JSONObject? {
1839
+ val result = JSONObject()
1840
+ temp ?: return null
1841
+ val input: DetailsRFID = temp
1842
+
1843
+ result.put("pa", input.pa)
1844
+ result.put("ca", input.ca)
1845
+ result.put("aa", input.aa)
1846
+ result.put("ta", input.ta)
1847
+ result.put("bac", input.bac)
1848
+ result.put("pace", input.pace)
1849
+ result.put("overallStatus", input.overallStatus)
1850
+
1851
+ return result
1852
+ }
1853
+
1854
+ fun vdsncDataDictionaryFromJSON(input: JSONObject): JSONObject {
1855
+ val temp = JSONObject(input.toString())
1856
+
1857
+ temp.put("Type", input.optString("type"))
1858
+ temp.put("Version", input.optInt("version"))
1859
+ temp.put("IssuingCountry", input.optString("issuingCountry"))
1860
+ temp.put("Message", input.optJSONObject("message"))
1861
+ temp.put("SignatureAlg", input.optString("signatureAlgorithm"))
1862
+ temp.put("Signature", bytesDataDictionaryFromJSON(input.optJSONObject("signature")))
1863
+ temp.put("Certificate", bytesDataDictionaryFromJSON(input.optJSONObject("certificate")))
1864
+ temp.put("CertificateChain", input.optJSONArray("certificateChain"))
1865
+ temp.put("Notifications", input.optJSONArray("notifications"))
1866
+
1867
+ return temp
1868
+ }
1869
+
1870
+ fun vdsncDataFromJSON(input: JSONObject) = VDSNCData.fromJson(vdsncDataDictionaryFromJSON(input))
1871
+
1872
+ fun generateVDSNCData(temp: VDSNCData?): JSONObject? {
1873
+ val result = JSONObject()
1874
+ temp ?: return null
1875
+ val input: VDSNCData = temp
1876
+
1877
+ result.put("type", input.type)
1878
+ result.put("version", input.version)
1879
+ result.put("issuingCountry", input.issuingCountry)
1880
+ result.put("message", input.message)
1881
+ result.put("signatureAlgorithm", input.signatureAlg)
1882
+ result.put("signature", generateBytesData(input.signature))
1883
+ result.put("certificate", generateBytesData(input.certificate))
1884
+ result.put("certificateChain", generateList(input.certificateChain, ::generateCertificateChain))
1885
+ result.put("notifications", generateLongArray(input.notifications))
1886
+
1887
+ return result
1888
+ }
1889
+
1890
+ fun bytesDataDictionaryFromJSON(input: JSONObject?): JSONObject? {
1891
+ input ?: return null
1892
+ val temp = JSONObject(input.toString())
1893
+
1894
+ temp.put("Data", input.optString("data"))
1895
+ temp.put("Length", input.optInt("length"))
1896
+ temp.put("Status", input.optLong("status"))
1897
+ temp.put("Type", input.optInt("type"))
1898
+
1899
+ return temp
1900
+ }
1901
+
1902
+ fun bytesDataFromJSON(input: JSONObject?) = BytesData.fromJson(bytesDataDictionaryFromJSON(input))
1903
+
1904
+ fun generateBytesData(temp: BytesData?): JSONObject? {
1905
+ val result = JSONObject()
1906
+ temp ?: return null
1907
+ val input: BytesData = temp
1908
+
1909
+ result.put("data", input.data)
1910
+ result.put("length", input.length)
1911
+ result.put("status", input.status)
1912
+ result.put("type", input.type)
1913
+
1914
+ return result
1915
+ }
1916
+
1917
+ fun generateLicense(temp: License?): JSONObject? {
1918
+ val result = JSONObject()
1919
+ temp ?: return null
1920
+ val input: License = temp
1921
+
1922
+ result.put("expiryDate", input.expiryDate?.toString())
1923
+ result.put("countryFilter", generateList(input.countryFilter))
1924
+ result.put("isRfidAvailable", input.isRfidAvailable)
1925
+
1926
+ return result
1927
+ }
1928
+
1929
+ fun generateDocReaderVersion(temp: DocReaderVersion?): JSONObject? {
1930
+ val result = JSONObject()
1931
+ temp ?: return null
1932
+ val input: DocReaderVersion = temp
1933
+
1934
+ result.put("api", input.api)
1935
+ result.put("core", input.core)
1936
+ result.put("coreMode", input.coreMode)
1937
+ result.put("database", generateDocReaderDocumentsDatabase(input.database))
1938
+
1939
+ return result
1940
+ }
1941
+
1942
+ fun docReaderDocumentsDatabaseFromJSON(input: JSONObject?): DocReaderDocumentsDatabase? {
1943
+ input ?: return null
1944
+ val temp = JSONObject(input.toString())
1945
+
1946
+ temp.put("id", input.optString("databaseID"))
1947
+ temp.put("export_date", input.optString("date"))
1948
+ temp.put("description", input.optString("databaseDescription"))
1949
+
1950
+ return DocReaderDocumentsDatabase.fromJson(temp)
1951
+ }
1952
+
1953
+ fun generateDocReaderDocumentsDatabase(temp: DocReaderDocumentsDatabase?): JSONObject? {
1954
+ val result = JSONObject()
1955
+ temp ?: return null
1956
+ val input: DocReaderDocumentsDatabase = temp
1957
+
1958
+ result.put("databaseID", input.databaseID)
1959
+ result.put("version", input.version)
1960
+ result.put("date", input.date)
1961
+ result.put("databaseDescription", input.databaseDescription)
1962
+ result.put("countriesNumber", input.countriesNumber)
1963
+ result.put("documentsNumber", input.documentsNumber)
1964
+ result.put("size", input.size as Long?)
1965
+
1966
+ return result
1967
+ }
1968
+
1969
+ fun documentReaderComparisonFromJSON(temp: JSONObject?): DocumentReaderComparison? {
1970
+ temp ?: return null
1971
+ val input: JSONObject = temp
1972
+ val result = DocumentReaderComparison()
1973
+
1974
+ result.sourceTypeLeft = input.optInt("sourceTypeLeft")
1975
+ result.sourceTypeRight = input.optInt("sourceTypeRight")
1976
+ result.status = input.optInt("status")
1977
+
1978
+ return result
1979
+ }
1980
+
1981
+ fun generateDocumentReaderComparison(temp: DocumentReaderComparison?): JSONObject? {
1982
+ val result = JSONObject()
1983
+ temp ?: return null
1984
+ val input: DocumentReaderComparison = temp
1985
+
1986
+ result.put("sourceTypeLeft", input.sourceTypeLeft)
1987
+ result.put("sourceTypeRight", input.sourceTypeRight)
1988
+ result.put("status", input.status)
1989
+
1990
+ return result
1991
+ }
1992
+
1993
+ fun documentReaderRFIDOriginFromJSON(temp: JSONObject?): DocumentReaderRfidOrigin? {
1994
+ temp ?: return null
1995
+ val input: JSONObject = temp
1996
+ val result = DocumentReaderRfidOrigin()
1997
+
1998
+ result.dg = input.optInt("dg")
1999
+ result.dgTag = input.optInt("dgTag")
2000
+ result.entryView = input.optInt("entryView")
2001
+ result.tagEntry = input.optInt("tagEntry")
2002
+
2003
+ return result
2004
+ }
2005
+
2006
+ fun generateDocumentReaderRFIDOrigin(temp: DocumentReaderRfidOrigin?): JSONObject? {
2007
+ val result = JSONObject()
2008
+ temp ?: return null
2009
+ val input: DocumentReaderRfidOrigin = temp
2010
+
2011
+ result.put("dg", input.dg)
2012
+ result.put("dgTag", input.dgTag)
2013
+ result.put("entryView", input.entryView)
2014
+ result.put("tagEntry", input.tagEntry)
2015
+
2016
+ return result
2017
+ }
2018
+
2019
+ fun documentReaderTextSourceFromJSON(temp: JSONObject?): DocumentReaderTextSource? {
2020
+ temp ?: return null
2021
+ val input: JSONObject = temp
2022
+ val result = DocumentReaderTextSource()
2023
+
2024
+ result.sourceType = input.optInt("sourceType")
2025
+ result.source = input.optString("source")
2026
+ result.validityStatus = input.optInt("validityStatus")
2027
+
2028
+ return result
2029
+ }
2030
+
2031
+ fun generateDocumentReaderTextSource(temp: DocumentReaderTextSource?): JSONObject? {
2032
+ val result = JSONObject()
2033
+ temp ?: return null
2034
+ val input: DocumentReaderTextSource = temp
2035
+
2036
+ result.put("sourceType", input.sourceType)
2037
+ result.put("source", input.source)
2038
+ result.put("validityStatus", input.validityStatus)
2039
+
2040
+ return result
2041
+ }
2042
+
2043
+ fun documentReaderSymbolFromJSON(temp: JSONObject?): DocumentReaderSymbol? {
2044
+ temp ?: return null
2045
+ val input: JSONObject = temp
2046
+ val result = DocumentReaderSymbol()
2047
+
2048
+ result.code = input.optInt("code")
2049
+ result.probability = input.optInt("probability")
2050
+ result.rect = rectFromJSON(input.optJSONObject("rect"))
2051
+
2052
+ return result
2053
+ }
2054
+
2055
+ fun generateDocumentReaderSymbol(temp: DocumentReaderSymbol?): JSONObject? {
2056
+ val result = JSONObject()
2057
+ temp ?: return null
2058
+ val input: DocumentReaderSymbol = temp
2059
+
2060
+ result.put("code", input.code)
2061
+ result.put("rect", generateRect(input.rect))
2062
+ result.put("probability", input.probability)
2063
+
2064
+ return result
2065
+ }
2066
+
2067
+ fun documentReaderValidityFromJSON(temp: JSONObject?): DocumentReaderValidity? {
2068
+ temp ?: return null
2069
+ val input: JSONObject = temp
2070
+ val result = DocumentReaderValidity()
2071
+
2072
+ result.sourceType = input.optInt("sourceType")
2073
+ result.status = input.optInt("status")
2074
+
2075
+ return result
2076
+ }
2077
+
2078
+ fun generateDocumentReaderValidity(temp: DocumentReaderValidity?): JSONObject? {
2079
+ val result = JSONObject()
2080
+ temp ?: return null
2081
+ val input: DocumentReaderValidity = temp
2082
+
2083
+ result.put("sourceType", input.sourceType)
2084
+ result.put("status", input.status)
2085
+
2086
+ return result
2087
+ }
2088
+
2089
+ fun barcodeTypeArrayFromJson(temp: JSONArray?): Array<String?>? {
2090
+ temp ?: return null
2091
+ val input: JSONArray = temp
2092
+
2093
+ val result = arrayOfNulls<String>(input.length())
2094
+ for (i in 0 until input.length()) result[i] = BarcodeType.valueOf(input.getInt(i))
2095
+
2096
+ return result
2097
+ }
2098
+
2099
+ fun generateBarcodeTypeArray(temp: Array<String?>?): JSONArray? {
2100
+ temp ?: return null
2101
+ val input: Array<String?> = temp
2102
+ val result = JSONArray()
2103
+
2104
+ for (s in input) result.put(generateBarcodeType(s))
2105
+
2106
+ return result
2107
+ }
2108
+
2109
+ fun generateBarcodeType(input: String?) = when (input) {
2110
+ "bct_Code128" -> 1
2111
+ "bct_Code39" -> 2
2112
+ "bct_EAN8" -> 3
2113
+ "bct_ITF" -> 4
2114
+ "bct_PDF417" -> 5
2115
+ "bct_STF" -> 6
2116
+ "bct_MTF" -> 7
2117
+ "bct_IATA" -> 8
2118
+ "bct_CODABAR" -> 9
2119
+ "bct_UPCA" -> 10
2120
+ "bct_CODE93" -> 11
2121
+ "bct_UPCE" -> 12
2122
+ "bct_EAN13" -> 13
2123
+ "bct_QRCODE" -> 14
2124
+ "bct_AZTEC" -> 15
2125
+ "bct_DATAMATRIX" -> 16
2126
+ "bct_ALL_1D" -> 17
2127
+ "bct_Code11" -> 18
2128
+ "bct_JABCODE" -> 19
2129
+ else -> 0
2130
+ }
2131
+
2132
+ fun documentReaderResultsFromJSON(temp: JSONObject?): DocumentReaderResults? {
2133
+ temp ?: return null
2134
+ val input: JSONObject = temp
2135
+ val result = DocumentReaderResults()
2136
+
2137
+ result.chipPage = input.optInt("chipPage")
2138
+ result.processingFinishedStatus = input.optInt("processingFinishedStatus")
2139
+ result.elapsedTime = input.optInt("elapsedTime")
2140
+ result.elapsedTimeRFID = input.optInt("elapsedTimeRFID")
2141
+ result.morePagesAvailable = input.optInt("morePagesAvailable")
2142
+ result.graphicResult = documentReaderGraphicResultFromJSON(input.optJSONObject("graphicResult"))
2143
+ result.textResult = documentReaderTextResultFromJSON(input.optJSONObject("textResult"))
2144
+ result.documentPosition = listFromJSON(input.optJSONArray("documentPosition"), ::elementPositionFromJSON)!!
2145
+ result.barcodePosition = listFromJSON(input.optJSONArray("barcodePosition"), ::elementPositionFromJSON)!!
2146
+ result.mrzPosition = listFromJSON(input.optJSONArray("mrzPosition"), ::elementPositionFromJSON)!!
2147
+ result.imageQuality = listFromJSON(input.optJSONArray("imageQuality"), ::imageQualityGroupFromJSON)!!
2148
+ result.rawResult = input.optString("rawResult")
2149
+ result.rfidSessionData = rfidSessionDataFromJSON(input.optJSONObject("rfidSessionData"))
2150
+ result.authenticityResult = documentReaderAuthenticityResultFromJSON(input.optJSONObject("authenticityResult"))
2151
+ result.barcodeResult = documentReaderBarcodeResultFromJSON(input.optJSONObject("barcodeResult"))
2152
+ result.rfidSessionData = rfidSessionDataFromJSON(input.optJSONObject("rfidSessionData"))
2153
+ result.documentType = listFromJSON(input.optJSONArray("documentType"), ::documentReaderDocumentTypeFromJSON)!!
2154
+ result.status = documentReaderResultsStatusFromJSON(input.optJSONObject("status"))!!
2155
+ result.vdsncData = vdsncDataFromJSON(input.optJSONObject("vdsncData")!!)
2156
+ result.transactionInfo = transactionInfoFromJSON(input.optJSONObject("transactionInfo"))
2157
+
2158
+ return result
2159
+ }
2160
+
2161
+ fun generateDocumentReaderResults(temp: DocumentReaderResults?, context: Context?): JSONObject? {
2162
+ val result = JSONObject()
2163
+ temp ?: return null
2164
+ val input: DocumentReaderResults = temp
2165
+
2166
+ result.put("chipPage", input.chipPage)
2167
+ result.put("processingFinishedStatus", input.processingFinishedStatus)
2168
+ result.put("elapsedTime", input.elapsedTime)
2169
+ result.put("elapsedTimeRFID", input.elapsedTimeRFID)
2170
+ result.put("morePagesAvailable", input.morePagesAvailable)
2171
+ result.put("graphicResult", generateDocumentReaderGraphicResult(input.graphicResult, context))
2172
+ result.put("textResult", generateDocumentReaderTextResult(input.textResult, context))
2173
+ result.put("documentPosition", generateList(input.documentPosition, ::generateElementPosition))
2174
+ result.put("barcodePosition", generateList(input.barcodePosition, ::generateElementPosition))
2175
+ result.put("mrzPosition", generateList(input.mrzPosition, ::generateElementPosition))
2176
+ result.put("imageQuality", generateList(input.imageQuality, ::generateImageQualityGroup))
2177
+ result.put("rawResult", input.rawResult)
2178
+ result.put("rfidSessionData", generateRFIDSessionData(input.rfidSessionData, context))
2179
+ result.put("authenticityResult", generateDocumentReaderAuthenticityResult(input.authenticityResult, context))
2180
+ result.put("barcodeResult", generateDocumentReaderBarcodeResult(input.barcodeResult))
2181
+ result.put("documentType", generateList(input.documentType, ::generateDocumentReaderDocumentType))
2182
+ result.put("status", generateDocumentReaderResultsStatus(input.status))
2183
+ result.put("vdsncData", generateVDSNCData(input.vdsncData))
2184
+ result.put("transactionInfo", generateTransactionInfo(input.transactionInfo))
2185
+
2186
+ return result
2187
+ }