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