@regulaforensics/react-native-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.
Files changed (50) hide show
  1. package/README.md +10 -42
  2. package/RNDocumentReaderApi.podspec +1 -1
  3. package/android/build.gradle +10 -10
  4. package/android/src/main/java/com/regula/documentreader/BluetoothUtil.kt +78 -74
  5. package/android/src/main/java/com/regula/documentreader/Config.kt +690 -0
  6. package/android/src/main/java/com/regula/documentreader/JSONConstructor.kt +2188 -0
  7. package/android/src/main/java/com/regula/documentreader/RNRegulaDocumentReaderModule.kt +537 -0
  8. package/android/src/main/java/com/regula/documentreader/RNRegulaDocumentReaderPackage.kt +11 -0
  9. package/android/src/main/java/com/regula/documentreader/Utils.kt +256 -0
  10. package/example/App.tsx +97 -145
  11. package/example/README.md +37 -0
  12. package/example/android/app/build.gradle +1 -1
  13. package/example/android/app/src/main/java/com/regula/dr/fullrfid/MainApplication.java +0 -1
  14. package/example/android/app/src/main/res/values/styles.xml +1 -2
  15. package/example/android/build.gradle +2 -4
  16. package/example/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  17. package/example/android/gradle.properties +1 -1
  18. package/example/index.js +1 -2
  19. package/example/ios/DocumentReader.xcodeproj/project.pbxproj +8 -4
  20. package/example/ios/Podfile +0 -1
  21. package/example/package-lock.json +3062 -2198
  22. package/example/package.json +24 -23
  23. package/index.d.ts +296 -135
  24. package/index.js +234 -115
  25. package/ios/RGLWConfig.h +48 -0
  26. package/ios/RGLWConfig.m +1325 -0
  27. package/ios/RGLWJSONConstructor.h +173 -69
  28. package/ios/RGLWJSONConstructor.m +1817 -762
  29. package/ios/RNRegulaDocumentReader.h +6 -5
  30. package/ios/RNRegulaDocumentReader.m +392 -584
  31. package/package.json +1 -1
  32. package/android/src/main/java/com/regula/documentreader/Helpers.java +0 -259
  33. package/android/src/main/java/com/regula/documentreader/JSONConstructor.java +0 -1119
  34. package/android/src/main/java/com/regula/documentreader/RNRegulaDocumentReaderModule.java +0 -1153
  35. package/android/src/main/java/com/regula/documentreader/RNRegulaDocumentReaderPackage.java +0 -26
  36. package/android/src/main/java/com/regula/documentreader/RegulaConfig.java +0 -830
  37. package/example/.bundle/config +0 -2
  38. package/example/.eslintrc.js +0 -4
  39. package/example/.prettierrc.js +0 -7
  40. package/example/Gemfile +0 -6
  41. package/example/Gemfile.lock +0 -98
  42. package/example/__tests__/App.test.tsx +0 -17
  43. package/example/app.json +0 -4
  44. package/example/babel.config.js +0 -3
  45. package/example/jest.config.js +0 -3
  46. package/example/tsconfig.json +0 -3
  47. package/ios/RGLWRegulaConfig.h +0 -26
  48. package/ios/RGLWRegulaConfig.m +0 -1152
  49. package/ios/RNRegulaDocumentReader.xcodeproj/project.pbxproj +0 -304
  50. package/ios/RNRegulaDocumentReader.xcworkspace/contents.xcworkspacedata +0 -9
@@ -0,0 +1,2188 @@
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 com.regula.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 com.regula.documentreader.Convert.bitmapFromBase64
100
+ import com.regula.documentreader.Convert.bitmapToBase64
101
+ import com.regula.documentreader.Convert.byteArrayFromBase64
102
+ import com.regula.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 cameraSize = input.getJSONObject("cameraSize")
1002
+ val width = cameraSize.getInt("width")
1003
+ val height = cameraSize.getInt("height")
1004
+ return Pair(width, height)
1005
+ }
1006
+
1007
+ fun generateCameraSize(width: Int?, height: Int?): JSONObject? {
1008
+ width ?: return null
1009
+ height ?: return null
1010
+ val result = JSONObject()
1011
+ result.put("width", width)
1012
+ result.put("height", height)
1013
+ return result
1014
+ }
1015
+
1016
+ fun documentReaderDocumentTypeFromJSON(temp: JSONObject?): DocumentReaderDocumentType? {
1017
+ temp ?: return null
1018
+ val input: JSONObject = temp
1019
+ val result = DocumentReaderDocumentType()
1020
+
1021
+ result.pageIndex = input.optInt("pageIndex")
1022
+ result.documentID = input.optInt("documentID")
1023
+ result.dType = input.optInt("dType")
1024
+ result.dFormat = input.optInt("dFormat")
1025
+ result.dMRZ = input.optBoolean("dMRZ")
1026
+ result.isDeprecated = input.optBoolean("isDeprecated")
1027
+ result.name = input.optString("name")
1028
+ result.ICAOCode = input.optString("ICAOCode")
1029
+ result.dDescription = input.optString("dDescription")
1030
+ result.dCountryName = input.optString("dCountryName")
1031
+ result.dYear = input.optString("dYear")
1032
+ result.FDSID = input.optJSONArray("FDSID").toIntArray()
1033
+
1034
+ return result
1035
+ }
1036
+
1037
+ fun generateDocumentReaderDocumentType(temp: DocumentReaderDocumentType?): JSONObject? {
1038
+ val result = JSONObject()
1039
+ temp ?: return null
1040
+ val input: DocumentReaderDocumentType = temp
1041
+
1042
+ result.put("pageIndex", input.pageIndex)
1043
+ result.put("documentID", input.documentID)
1044
+ result.put("dType", input.dType)
1045
+ result.put("dFormat", input.dFormat)
1046
+ result.put("dMRZ", input.dMRZ)
1047
+ result.put("isDeprecated", input.isDeprecated)
1048
+ result.put("name", input.name)
1049
+ result.put("ICAOCode", input.ICAOCode)
1050
+ result.put("dDescription", input.dDescription)
1051
+ result.put("dYear", input.dYear)
1052
+ result.put("dCountryName", input.dCountryName)
1053
+ result.put("FDSID", input.FDSID.generate())
1054
+
1055
+ return result
1056
+ }
1057
+
1058
+ fun generateDocumentReaderNotification(temp: DocumentReaderNotification?): JSONObject? {
1059
+ val result = JSONObject()
1060
+ temp ?: return null
1061
+ val input: DocumentReaderNotification = temp
1062
+
1063
+ result.put("notificationCode", input.notificationCode)
1064
+ result.put("dataFileType", input.dataFileType)
1065
+ result.put("progress", input.progress)
1066
+
1067
+ return result
1068
+ }
1069
+
1070
+ fun accessControlProcedureTypeFromJSON(temp: JSONObject?): AccessControlProcedureType? {
1071
+ temp ?: return null
1072
+ val input: JSONObject = temp
1073
+ val result = AccessControlProcedureType()
1074
+
1075
+ result.activeOptionIdx = input.optInt("activeOptionIdx")
1076
+ result.type = input.optInt("type")
1077
+ result.status = input.optInt("status").toLong()
1078
+ result.notifications = listFromJSON(input.optJSONArray("notifications")!!)
1079
+
1080
+ return result
1081
+ }
1082
+
1083
+ fun generateAccessControlProcedureType(temp: AccessControlProcedureType?): JSONObject? {
1084
+ val result = JSONObject()
1085
+ temp ?: return null
1086
+ val input: AccessControlProcedureType = temp
1087
+
1088
+ result.put("activeOptionIdx", input.activeOptionIdx)
1089
+ result.put("type", input.type)
1090
+ result.put("status", input.status)
1091
+ result.put("notifications", generateList(input.notifications))
1092
+
1093
+ return result
1094
+ }
1095
+
1096
+ fun fileDataFromJSON(temp: JSONObject?): FileData? {
1097
+ temp ?: return null
1098
+ val input: JSONObject = temp
1099
+ val result = FileData()
1100
+
1101
+ result.length = input.optInt("length")
1102
+ result.type = input.optInt("type")
1103
+ result.status = input.optInt("status").toLong()
1104
+ result.data = input.optString("data")
1105
+
1106
+ return result
1107
+ }
1108
+
1109
+ fun generateFileData(temp: FileData?): JSONObject? {
1110
+ val result = JSONObject()
1111
+ temp ?: return null
1112
+ val input: FileData = temp
1113
+
1114
+ result.put("length", input.length)
1115
+ result.put("type", input.type)
1116
+ result.put("status", input.status)
1117
+ result.put("data", input.data)
1118
+
1119
+ return result
1120
+ }
1121
+
1122
+ fun certificateDataFromJSON(temp: JSONObject?): CertificateData? {
1123
+ temp ?: return null
1124
+ val input: JSONObject = temp
1125
+ val result = CertificateData()
1126
+
1127
+ result.length = input.optInt("length")
1128
+ result.data = input.optString("data")
1129
+
1130
+ return result
1131
+ }
1132
+
1133
+ fun generateCertificateData(temp: CertificateData?): JSONObject? {
1134
+ val result = JSONObject()
1135
+ temp ?: return null
1136
+ val input: CertificateData = temp
1137
+
1138
+ result.put("length", input.length)
1139
+ result.put("data", input.data)
1140
+
1141
+ return result
1142
+ }
1143
+
1144
+ fun securityObjectCertificatesFromJSON(temp: JSONObject?): SecurityObjectCertificates? {
1145
+ temp ?: return null
1146
+ val input: JSONObject = temp
1147
+ val result = SecurityObjectCertificates()
1148
+
1149
+ result.securityObject = certificateDataFromJSON(input.optJSONObject("securityObject"))
1150
+
1151
+ return result
1152
+ }
1153
+
1154
+ fun generateSecurityObjectCertificates(temp: SecurityObjectCertificates?): JSONObject? {
1155
+ val result = JSONObject()
1156
+ temp ?: return null
1157
+ val input: SecurityObjectCertificates = temp
1158
+
1159
+ result.put("securityObject", generateCertificateData(input.securityObject))
1160
+
1161
+ return result
1162
+ }
1163
+
1164
+ fun fileFromJSON(temp: JSONObject?): File? {
1165
+ temp ?: return null
1166
+ val input: JSONObject = temp
1167
+ val result = File()
1168
+
1169
+ result.readingTime = input.optInt("readingTime")
1170
+ result.type = input.optInt("type")
1171
+ result.pAStatus = input.optLong("pAStatus")
1172
+ result.readingStatus = input.optInt("readingStatus").toLong()
1173
+ result.fileID = input.optString("fileID")
1174
+ result.fileData = fileDataFromJSON(input.optJSONObject("fileData"))
1175
+ result.certificates = securityObjectCertificatesFromJSON(input.optJSONObject("certificates"))
1176
+ result.docFieldsText = listFromJSON(input.optJSONArray("docFieldsText")!!)
1177
+ result.docFieldsGraphics = listFromJSON(input.optJSONArray("docFieldsGraphics")!!)
1178
+ result.docFieldsOriginals = listFromJSON(input.optJSONArray("docFieldsOriginals")!!)
1179
+ result.notifications = listFromJSON(input.optJSONArray("notifications")!!)
1180
+
1181
+ return result
1182
+ }
1183
+
1184
+ fun generateFile(temp: File?, context: Context?): JSONObject? {
1185
+ val result = JSONObject()
1186
+ temp ?: return null
1187
+ val input: File = temp
1188
+
1189
+ result.put("readingTime", input.readingTime)
1190
+ result.put("type", input.type)
1191
+ result.put("typeName", eRFID_DataFile_Type.getTranslation(context, input.type))
1192
+ result.put("pAStatus", input.pAStatus)
1193
+ result.put("readingStatus", input.readingStatus)
1194
+ result.put("fileID", input.fileID)
1195
+ result.put("fileData", generateFileData(input.fileData))
1196
+ result.put("certificates", generateSecurityObjectCertificates(input.certificates))
1197
+ result.put("docFieldsText", generateList(input.docFieldsText))
1198
+ result.put("docFieldsGraphics", generateList(input.docFieldsGraphics))
1199
+ result.put("docFieldsOriginals", generateList(input.docFieldsOriginals))
1200
+ result.put("notifications", generateList(input.notifications))
1201
+
1202
+ return result
1203
+ }
1204
+
1205
+ fun applicationFromJSON(temp: JSONObject?): Application? {
1206
+ temp ?: return null
1207
+ val input: JSONObject = temp
1208
+ val result = Application()
1209
+
1210
+ result.type = input.optInt("type")
1211
+ result.status = input.optInt("status")
1212
+ result.applicationID = input.optString("applicationID")
1213
+ result.dataHashAlgorithm = input.optString("dataHashAlgorithm")
1214
+ result.unicodeVersion = input.optString("unicodeVersion")
1215
+ result.version = input.optString("version")
1216
+ result.files = listFromJSON(input.optJSONArray("files"), ::fileFromJSON)!!
1217
+
1218
+ return result
1219
+ }
1220
+
1221
+ fun generateApplication(temp: Application?, context: Context?): JSONObject? {
1222
+ val result = JSONObject()
1223
+ temp ?: return null
1224
+ val input: Application = temp
1225
+
1226
+ result.put("type", input.type)
1227
+ result.put("status", input.status)
1228
+ result.put("applicationID", input.applicationID)
1229
+ result.put("dataHashAlgorithm", input.dataHashAlgorithm)
1230
+ result.put("unicodeVersion", input.unicodeVersion)
1231
+ result.put("version", input.version)
1232
+ result.put("files", generateList(input.files, ::generateFile, context))
1233
+
1234
+ return result
1235
+ }
1236
+
1237
+ fun valueFromJSON(temp: JSONObject?): Value? {
1238
+ temp ?: return null
1239
+ val input: JSONObject = temp
1240
+ val result = Value()
1241
+
1242
+ result.length = input.optInt("length")
1243
+ result.type = input.optInt("type")
1244
+ result.status = input.optInt("status").toLong()
1245
+ result.data = input.optString("data")
1246
+ result.format = input.optString("format")
1247
+
1248
+ return result
1249
+ }
1250
+
1251
+ fun generateValue(temp: Value?): JSONObject? {
1252
+ val result = JSONObject()
1253
+ temp ?: return null
1254
+ val input: Value = temp
1255
+
1256
+ result.put("length", input.length)
1257
+ result.put("type", input.type)
1258
+ result.put("status", input.status)
1259
+ result.put("data", input.data)
1260
+ result.put("format", input.format)
1261
+
1262
+ return result
1263
+ }
1264
+
1265
+ fun attributeFromJSON(temp: JSONObject?): Attribute? {
1266
+ temp ?: return null
1267
+ val input: JSONObject = temp
1268
+ val result = Attribute()
1269
+
1270
+ result.type = input.optString("type")
1271
+ result.value = valueFromJSON(input.optJSONObject("value"))
1272
+
1273
+ return result
1274
+ }
1275
+
1276
+ fun generateAttribute(temp: Attribute?): JSONObject? {
1277
+ val result = JSONObject()
1278
+ temp ?: return null
1279
+ val input: Attribute = temp
1280
+
1281
+ result.put("type", input.type)
1282
+ result.put("value", generateValue(input.value))
1283
+
1284
+ return result
1285
+ }
1286
+
1287
+ fun authorityFromJSON(temp: JSONObject?): Authority? {
1288
+ temp ?: return null
1289
+ val input: JSONObject = temp
1290
+ val result = Authority()
1291
+
1292
+ result.data = input.optString("data")
1293
+ result.friendlyName = valueFromJSON(input.optJSONObject("friendlyName"))
1294
+ result.attributes = listFromJSON(input.optJSONArray("attributes"), ::attributeFromJSON)!!
1295
+
1296
+ return result
1297
+ }
1298
+
1299
+ fun generateAuthority(temp: Authority?): JSONObject? {
1300
+ val result = JSONObject()
1301
+ temp ?: return null
1302
+ val input: Authority = temp
1303
+
1304
+ result.put("data", input.data)
1305
+ result.put("friendlyName", generateValue(input.friendlyName))
1306
+ result.put("attributes", generateList(input.attributes, ::generateAttribute))
1307
+
1308
+ return result
1309
+ }
1310
+
1311
+ fun extensionFromJSON(temp: JSONObject?): Extension? {
1312
+ temp ?: return null
1313
+ val input: JSONObject = temp
1314
+ val result = Extension()
1315
+
1316
+ result.data = input.optString("data")
1317
+ result.type = input.optString("type")
1318
+
1319
+ return result
1320
+ }
1321
+
1322
+ fun generateExtension(temp: Extension?): JSONObject? {
1323
+ val result = JSONObject()
1324
+ temp ?: return null
1325
+ val input: Extension = temp
1326
+
1327
+ result.put("data", input.data)
1328
+ result.put("type", input.type)
1329
+
1330
+ return result
1331
+ }
1332
+
1333
+ fun validityFromJSON(temp: JSONObject?): Validity? {
1334
+ temp ?: return null
1335
+ val input: JSONObject = temp
1336
+ val result = Validity()
1337
+
1338
+ result.notAfter = valueFromJSON(input.optJSONObject("notAfter"))
1339
+ result.notBefore = valueFromJSON(input.optJSONObject("notBefore"))
1340
+
1341
+ return result
1342
+ }
1343
+
1344
+ fun generateValidity(temp: Validity?): JSONObject? {
1345
+ val result = JSONObject()
1346
+ temp ?: return null
1347
+ val input: Validity = temp
1348
+
1349
+ result.put("notAfter", generateValue(input.notAfter))
1350
+ result.put("notBefore", generateValue(input.notBefore))
1351
+
1352
+ return result
1353
+ }
1354
+
1355
+ fun certificateChainFromJSON(temp: JSONObject?): CertificateChain? {
1356
+ temp ?: return null
1357
+ val input: JSONObject = temp
1358
+ val result = CertificateChain()
1359
+
1360
+ result.origin = input.optInt("origin")
1361
+ result.type = input.optInt("type")
1362
+ result.version = input.optInt("version")
1363
+ result.paStatus = input.optInt("paStatus").toLong()
1364
+ result.serialNumber = input.optString("serialNumber")
1365
+ result.signatureAlgorithm = input.optString("signatureAlgorithm")
1366
+ result.subjectPKAlgorithm = input.optString("subjectPKAlgorithm")
1367
+ result.fileName = valueFromJSON(input.optJSONObject("fileName"))
1368
+ result.validity = validityFromJSON(input.optJSONObject("validity"))
1369
+ result.issuer = authorityFromJSON(input.optJSONObject("issuer"))
1370
+ result.subject = authorityFromJSON(input.optJSONObject("subject"))
1371
+ result.notifications = listFromJSON(input.optJSONArray("notifications")!!)
1372
+ result.extensions = listFromJSON(input.optJSONArray("extensions"), ::extensionFromJSON)!!
1373
+
1374
+ return result
1375
+ }
1376
+
1377
+ fun generateCertificateChain(temp: CertificateChain?): JSONObject? {
1378
+ val result = JSONObject()
1379
+ temp ?: return null
1380
+ val input: CertificateChain = temp
1381
+
1382
+ result.put("origin", input.origin)
1383
+ result.put("type", input.type)
1384
+ result.put("version", input.version)
1385
+ result.put("paStatus", input.paStatus)
1386
+ result.put("serialNumber", input.serialNumber)
1387
+ result.put("signatureAlgorithm", input.signatureAlgorithm)
1388
+ result.put("subjectPKAlgorithm", input.subjectPKAlgorithm)
1389
+ result.put("fileName", generateValue(input.fileName))
1390
+ result.put("validity", generateValidity(input.validity))
1391
+ result.put("issuer", generateAuthority(input.issuer))
1392
+ result.put("subject", generateAuthority(input.subject))
1393
+ result.put("notifications", generateList(input.notifications))
1394
+ result.put("extensions", generateList(input.extensions, ::generateExtension))
1395
+
1396
+ return result
1397
+ }
1398
+
1399
+ fun signerInfoFromJSON(temp: JSONObject?): SignerInfo? {
1400
+ temp ?: return null
1401
+ val input: JSONObject = temp
1402
+ val result = SignerInfo()
1403
+
1404
+ result.version = input.optInt("version")
1405
+ result.paStatus = input.optInt("paStatus").toLong()
1406
+ result.dataToHash = input.optString("dataToHash")
1407
+ result.digestAlgorithm = input.optString("digestAlgorithm")
1408
+ result.signatureAlgorithm = input.optString("signatureAlgorithm")
1409
+ result.serialNumber = valueFromJSON(input.optJSONObject("serialNumber"))
1410
+ result.signature = valueFromJSON(input.optJSONObject("signature"))
1411
+ result.subjectKeyIdentifier = valueFromJSON(input.optJSONObject("subjectKeyIdentifier"))
1412
+ result.issuer = authorityFromJSON(input.optJSONObject("issuer"))
1413
+ result.notifications = listFromJSON(input.optJSONArray("notifications")!!)
1414
+ result.signedAttributes = listFromJSON(input.optJSONArray("signedAttributes"), ::extensionFromJSON)!!
1415
+ result.certificateChain = listFromJSON(input.optJSONArray("certificateChain"), ::certificateChainFromJSON)!!
1416
+
1417
+ return result
1418
+ }
1419
+
1420
+ fun generateSignerInfo(temp: SignerInfo?): JSONObject? {
1421
+ val result = JSONObject()
1422
+ temp ?: return null
1423
+ val input: SignerInfo = temp
1424
+
1425
+ result.put("version", input.version)
1426
+ result.put("paStatus", input.paStatus)
1427
+ result.put("dataToHash", input.dataToHash)
1428
+ result.put("digestAlgorithm", input.digestAlgorithm)
1429
+ result.put("signatureAlgorithm", input.signatureAlgorithm)
1430
+ result.put("serialNumber", generateValue(input.serialNumber))
1431
+ result.put("signature", generateValue(input.signature))
1432
+ result.put("subjectKeyIdentifier", generateValue(input.subjectKeyIdentifier))
1433
+ result.put("issuer", generateAuthority(input.issuer))
1434
+ result.put("notifications", generateList(input.notifications))
1435
+ result.put("signedAttributes", generateList(input.signedAttributes, ::generateExtension))
1436
+ result.put("certificateChain", generateList(input.certificateChain, ::generateCertificateChain))
1437
+
1438
+ return result
1439
+ }
1440
+
1441
+ fun securityObjectFromJSON(temp: JSONObject?): SecurityObject? {
1442
+ temp ?: return null
1443
+ val input: JSONObject = temp
1444
+ val result = SecurityObject()
1445
+
1446
+ result.fileReference = input.optInt("fileReference")
1447
+ result.version = input.optInt("version")
1448
+ result.objectType = input.optString("objectType")
1449
+ result.notifications = listFromJSON(input.optJSONArray("notifications")!!)
1450
+ result.signerInfos = listFromJSON(input.optJSONArray("signerInfos"), ::signerInfoFromJSON)!!
1451
+
1452
+ return result
1453
+ }
1454
+
1455
+ fun generateSecurityObject(temp: SecurityObject?): JSONObject? {
1456
+ val result = JSONObject()
1457
+ temp ?: return null
1458
+ val input: SecurityObject = temp
1459
+
1460
+ result.put("fileReference", input.fileReference)
1461
+ result.put("version", input.version)
1462
+ result.put("objectType", input.objectType)
1463
+ result.put("notifications", generateList(input.notifications))
1464
+ result.put("signerInfos", generateList(input.signerInfos, ::generateSignerInfo))
1465
+
1466
+ return result
1467
+ }
1468
+
1469
+ fun cardPropertiesFromJSON(temp: JSONObject?): CardProperties? {
1470
+ temp ?: return null
1471
+ val input: JSONObject = temp
1472
+ val result = CardProperties()
1473
+
1474
+ result.aTQA = input.optInt("aTQA")
1475
+ result.bitRateR = input.optInt("bitRateR")
1476
+ result.bitRateS = input.optInt("bitRateS")
1477
+ result.chipTypeA = input.optInt("chipTypeA")
1478
+ result.mifareMemory = input.optInt("mifareMemory")
1479
+ result.rfidType = input.optInt("rfidType")
1480
+ result.sAK = input.optInt("sAK")
1481
+ result.support4 = input.optBoolean("support4")
1482
+ result.supportMifare = input.optBoolean("supportMifare")
1483
+ result.aTQB = input.optString("aTQB")
1484
+ result.aTR = input.optString("aTR")
1485
+ result.baudrate1 = input.optString("baudrate1")
1486
+ result.baudrate2 = input.optString("baudrate2")
1487
+ result.uID = input.optString("uID")
1488
+
1489
+ return result
1490
+ }
1491
+
1492
+ fun generateCardProperties(temp: CardProperties?): JSONObject? {
1493
+ val result = JSONObject()
1494
+ temp ?: return null
1495
+ val input: CardProperties = temp
1496
+
1497
+ result.put("aTQA", input.aTQA)
1498
+ result.put("bitRateR", input.bitRateR)
1499
+ result.put("bitRateS", input.bitRateS)
1500
+ result.put("chipTypeA", input.chipTypeA)
1501
+ result.put("mifareMemory", input.mifareMemory)
1502
+ result.put("rfidType", input.rfidType)
1503
+ result.put("sAK", input.sAK)
1504
+ result.put("support4", input.support4)
1505
+ result.put("supportMifare", input.supportMifare)
1506
+ result.put("aTQB", input.aTQB)
1507
+ result.put("aTR", input.aTR)
1508
+ result.put("baudrate1", input.baudrate1)
1509
+ result.put("baudrate2", input.baudrate2)
1510
+ result.put("uID", input.uID)
1511
+
1512
+ return result
1513
+ }
1514
+
1515
+ fun rfidSessionDataFromJSON(temp: JSONObject?): RFIDSessionData? {
1516
+ temp ?: return null
1517
+ val input: JSONObject = temp
1518
+ val result = RFIDSessionData()
1519
+
1520
+ result.totalBytesReceived = input.optInt("totalBytesReceived")
1521
+ result.totalBytesSent = input.optInt("totalBytesSent")
1522
+ result.status = input.optInt("status").toLong()
1523
+ result.extLeSupport = input.optLong("extLeSupport")
1524
+ result.processTime = input.optLong("processTime")
1525
+ result.cardProperties = cardPropertiesFromJSON(input.optJSONObject("cardProperties"))
1526
+ result.accessControls = listFromJSON(input.optJSONArray("accessControls"), ::accessControlProcedureTypeFromJSON)!!
1527
+ result.applications = listFromJSON(input.optJSONArray("applications"), ::applicationFromJSON)!!
1528
+ result.securityObjects = listFromJSON(input.optJSONArray("securityObjects"), ::securityObjectFromJSON)!!
1529
+ result.dataFields = listFromJSON(input.optJSONArray("dataFields"), ::dataFieldFromJSON)!!
1530
+ result.dataGroups = input.optJSONArray("dataGroups").toIntArray()
1531
+
1532
+ return result
1533
+ }
1534
+
1535
+ fun generateRFIDSessionData(temp: RFIDSessionData?, context: Context?): JSONObject? {
1536
+ val result = JSONObject()
1537
+ temp ?: return null
1538
+ val input: RFIDSessionData = temp
1539
+
1540
+ result.put("totalBytesReceived", input.totalBytesReceived)
1541
+ result.put("totalBytesSent", input.totalBytesSent)
1542
+ result.put("status", input.status)
1543
+ result.put("extLeSupport", input.extLeSupport)
1544
+ result.put("processTime", input.processTime)
1545
+ result.put("cardProperties", generateCardProperties(input.cardProperties))
1546
+ result.put("accessControls", generateList(input.accessControls, ::generateAccessControlProcedureType))
1547
+ result.put("applications", generateList(input.applications, ::generateApplication, context))
1548
+ result.put("securityObjects", generateList(input.securityObjects, ::generateSecurityObject))
1549
+ result.put("dataGroups", input.dataGroups.generate())
1550
+ result.put("dataFields", generateList(input.dataFields, ::generateDataField))
1551
+
1552
+ return result
1553
+ }
1554
+
1555
+ fun dataFieldFromJSON(temp: JSONObject?): DataField? {
1556
+ temp ?: return null
1557
+ val input: JSONObject = temp
1558
+ val result = DataField()
1559
+
1560
+ result.data = input.optString("data")
1561
+ result.fieldType = input.optInt("fieldType")
1562
+
1563
+ return result
1564
+ }
1565
+
1566
+ fun generateDataField(temp: DataField?): JSONObject? {
1567
+ val result = JSONObject()
1568
+ temp ?: return null
1569
+ val input: DataField = temp
1570
+
1571
+ result.put("data", input.data)
1572
+ result.put("fieldType", input.fieldType)
1573
+
1574
+ return result
1575
+ }
1576
+
1577
+ fun documentReaderAuthenticityCheckFromJSON(temp: JSONObject?): DocumentReaderAuthenticityCheck? {
1578
+ temp ?: return null
1579
+ val input: JSONObject = temp
1580
+ val result = DocumentReaderAuthenticityCheck()
1581
+
1582
+ result.type = input.optInt("type")
1583
+ result.pageIndex = input.optInt("pageIndex")
1584
+ result.elements = listFromJSON(input.optJSONArray("elements"), ::documentReaderAuthenticityElementFromJSON)!!
1585
+
1586
+ return result
1587
+ }
1588
+
1589
+ fun generateDocumentReaderAuthenticityCheck(temp: DocumentReaderAuthenticityCheck?, context: Context?): JSONObject? {
1590
+ val result = JSONObject()
1591
+ temp ?: return null
1592
+ val input: DocumentReaderAuthenticityCheck = temp
1593
+
1594
+ result.put("type", input.type)
1595
+ result.put("status", input.status)
1596
+ result.put("typeName", input.getTypeName(context))
1597
+ result.put("pageIndex", input.pageIndex)
1598
+ result.put("elements", generateList(input.elements, ::generateDocumentReaderAuthenticityElement, context))
1599
+
1600
+ return result
1601
+ }
1602
+
1603
+ fun pdf417InfoFromJSON(temp: JSONObject?): PDF417Info? {
1604
+ temp ?: return null
1605
+ val input: JSONObject = temp
1606
+ val result = PDF417Info()
1607
+
1608
+ result.errorLevel = input.optInt("errorLevel")
1609
+ result.columns = input.optInt("columns")
1610
+ result.rows = input.optInt("rows")
1611
+
1612
+ return result
1613
+ }
1614
+
1615
+ fun generatePDF417Info(temp: PDF417Info?): JSONObject? {
1616
+ val result = JSONObject()
1617
+ temp ?: return null
1618
+ val input: PDF417Info = temp
1619
+
1620
+ result.put("errorLevel", input.errorLevel)
1621
+ result.put("columns", input.columns)
1622
+ result.put("rows", input.rows)
1623
+
1624
+ return result
1625
+ }
1626
+
1627
+ fun documentReaderBarcodeResultFromJSON(temp: JSONObject?): DocumentReaderBarcodeResult? {
1628
+ temp ?: return null
1629
+ val input: JSONObject = temp
1630
+ val result = DocumentReaderBarcodeResult()
1631
+
1632
+ result.fields = listFromJSON(input.optJSONArray("fields"), ::documentReaderBarcodeFieldFromJSON)!!
1633
+
1634
+ return result
1635
+ }
1636
+
1637
+ fun generateDocumentReaderBarcodeResult(temp: DocumentReaderBarcodeResult?): JSONObject? {
1638
+ val result = JSONObject()
1639
+ temp ?: return null
1640
+ val input: DocumentReaderBarcodeResult = temp
1641
+
1642
+ result.put("fields", generateList(input.fields, ::generateDocumentReaderBarcodeField))
1643
+
1644
+ return result
1645
+ }
1646
+
1647
+ fun documentReaderBarcodeFieldFromJSON(temp: JSONObject?): DocumentReaderBarcodeField? {
1648
+ temp ?: return null
1649
+ val input: JSONObject = temp
1650
+ val result = DocumentReaderBarcodeField()
1651
+
1652
+ result.barcodeType = input.optInt("barcodeType")
1653
+ result.status = input.optInt("status")
1654
+ result.pageIndex = input.optInt("pageIndex")
1655
+ result.pdf417Info = pdf417InfoFromJSON(input.optJSONObject("pdf417Info"))
1656
+ result.data = byteArrayFromBase64(input.optString("data"))
1657
+
1658
+ return result
1659
+ }
1660
+
1661
+ fun generateDocumentReaderBarcodeField(temp: DocumentReaderBarcodeField?): JSONObject? {
1662
+ val result = JSONObject()
1663
+ temp ?: return null
1664
+ val input: DocumentReaderBarcodeField = temp
1665
+
1666
+ result.put("barcodeType", input.barcodeType)
1667
+ result.put("status", input.status)
1668
+ result.put("pageIndex", input.pageIndex)
1669
+ result.put("pdf417Info", generatePDF417Info(input.pdf417Info))
1670
+ result.put("data", generateByteArray(input.data))
1671
+
1672
+ return result
1673
+ }
1674
+
1675
+ fun documentReaderAuthenticityResultFromJSON(temp: JSONObject?): DocumentReaderAuthenticityResult? {
1676
+ temp ?: return null
1677
+ val input: JSONObject = temp
1678
+ val result = DocumentReaderAuthenticityResult()
1679
+
1680
+ result.checks = listFromJSON(input.optJSONArray("checks"), ::documentReaderAuthenticityCheckFromJSON)!!
1681
+
1682
+ return result
1683
+ }
1684
+
1685
+ fun generateDocumentReaderAuthenticityResult(temp: DocumentReaderAuthenticityResult?, context: Context?): JSONObject? {
1686
+ val result = JSONObject()
1687
+ temp ?: return null
1688
+ val input: DocumentReaderAuthenticityResult = temp
1689
+
1690
+ result.put("status", input.status)
1691
+ result.put("checks", generateList(input.checks, ::generateDocumentReaderAuthenticityCheck, context))
1692
+
1693
+ return result
1694
+ }
1695
+
1696
+ fun documentReaderAuthenticityElementFromJSON(temp: JSONObject?): DocumentReaderAuthenticityElement? {
1697
+ temp ?: return null
1698
+ val input: JSONObject = temp
1699
+ val result = DocumentReaderAuthenticityElement()
1700
+
1701
+ result.status = input.optInt("status")
1702
+ result.elementType = input.optInt("elementType")
1703
+ result.elementDiagnose = input.optInt("elementDiagnose")
1704
+
1705
+ return result
1706
+ }
1707
+
1708
+ fun generateDocumentReaderAuthenticityElement(temp: DocumentReaderAuthenticityElement?, context: Context?): JSONObject? {
1709
+ val result = JSONObject()
1710
+ temp ?: return null
1711
+ val input: DocumentReaderAuthenticityElement = temp
1712
+
1713
+ result.put("status", input.status)
1714
+ result.put("elementType", input.elementType)
1715
+ result.put("elementDiagnose", input.elementDiagnose)
1716
+ result.put("elementTypeName", input.getElementTypeName(context))
1717
+ result.put("elementDiagnoseName", input.getElementDiagnoseName(context))
1718
+
1719
+ return result
1720
+ }
1721
+
1722
+ fun paResourcesIssuerFromJSON(temp: JSONObject?): PAResourcesIssuer? {
1723
+ temp ?: return null
1724
+ val input: JSONObject = temp
1725
+ val result = PAResourcesIssuer()
1726
+
1727
+ result.data = byteArrayFromBase64(input.optString("data"))
1728
+ result.friendlyName = input.optString("friendlyName")
1729
+ result.attributes = arrayFromJSON(input.optJSONArray("attributes"), ::paAttributeFromJSON, arrayOfNulls(input.optJSONArray("attributes")?.length() ?: 0))
1730
+
1731
+ return result
1732
+ }
1733
+
1734
+ fun generatePAResourcesIssuer(temp: PAResourcesIssuer?): JSONObject? {
1735
+ val result = JSONObject()
1736
+ temp ?: return null
1737
+ val input: PAResourcesIssuer = temp
1738
+
1739
+ result.put("data", generateByteArray(input.data))
1740
+ result.put("friendlyName", input.friendlyName)
1741
+ result.put("attributes", generateArray(input.attributes, ::generatePAAttribute))
1742
+
1743
+ return result
1744
+ }
1745
+
1746
+ fun paAttributeFromJSON(temp: JSONObject?): PAAttribute? {
1747
+ temp ?: return null
1748
+ val input: JSONObject = temp
1749
+ val result = PAAttribute()
1750
+
1751
+ result.type = input.optString("type")
1752
+ result.value = input.optString("value")
1753
+
1754
+ return result
1755
+ }
1756
+
1757
+ fun generatePAAttribute(temp: PAAttribute?): JSONObject? {
1758
+ val result = JSONObject()
1759
+ temp ?: return null
1760
+ val input: PAAttribute = temp
1761
+
1762
+ result.put("type", input.type)
1763
+ result.put("value", input.value)
1764
+
1765
+ return result
1766
+ }
1767
+
1768
+ fun taChallengeFromJSON(temp: JSONObject?): TAChallenge? {
1769
+ temp ?: return null
1770
+ val input: JSONObject = temp
1771
+ val result = TAChallenge()
1772
+
1773
+ result.data = byteArrayFromBase64(input.optString("data"))
1774
+ result.auxPCD = input.optString("auxPCD")
1775
+ result.challengePICC = input.optString("challengePICC")
1776
+ result.hashPK = input.optString("hashPK")
1777
+ result.idPICC = input.optString("idPICC")
1778
+
1779
+ return result
1780
+ }
1781
+
1782
+ fun generateTAChallenge(temp: TAChallenge?): JSONObject? {
1783
+ val result = JSONObject()
1784
+ temp ?: return null
1785
+ val input: TAChallenge = temp
1786
+
1787
+ result.put("data", generateByteArray(input.data))
1788
+ result.put("auxPCD", input.auxPCD)
1789
+ result.put("challengePICC", input.challengePICC)
1790
+ result.put("hashPK", input.hashPK)
1791
+ result.put("idPICC", input.idPICC)
1792
+
1793
+ return result
1794
+ }
1795
+
1796
+ fun documentReaderResultsStatusFromJSON(temp: JSONObject?): DocumentReaderResultsStatus? {
1797
+ temp ?: return null
1798
+ val input: JSONObject = temp
1799
+
1800
+ input.remove("detailsRFID")
1801
+
1802
+ return DocumentReaderResultsStatus.fromJson(input)
1803
+ }
1804
+
1805
+ fun generateDocumentReaderResultsStatus(temp: DocumentReaderResultsStatus?): JSONObject? {
1806
+ val result = JSONObject()
1807
+ temp ?: return null
1808
+ val input: DocumentReaderResultsStatus = temp
1809
+
1810
+ result.put("overallStatus", input.overallStatus)
1811
+ result.put("optical", input.optical)
1812
+ result.put("detailsOptical", generateDetailsOptical(input.detailsOptical))
1813
+ result.put("rfid", input.rfid)
1814
+ result.put("detailsRFID", generateDetailsRFID(input.detailsRFID))
1815
+ result.put("portrait", input.portrait)
1816
+ result.put("stopList", input.stopList)
1817
+
1818
+ return result
1819
+ }
1820
+
1821
+ fun generateDetailsOptical(temp: DetailsOptical?): JSONObject? {
1822
+ val result = JSONObject()
1823
+ temp ?: return null
1824
+ val input: DetailsOptical = temp
1825
+
1826
+ result.put("overallStatus", input.overallStatus)
1827
+ result.put("mrz", input.mrz)
1828
+ result.put("text", input.text)
1829
+ result.put("docType", input.docType)
1830
+ result.put("security", input.security)
1831
+ result.put("imageQA", input.imageQA)
1832
+ result.put("expiry", input.expiry)
1833
+ result.put("vds", input.vds)
1834
+ result.put("pagesCount", input.pagesCount)
1835
+
1836
+ return result
1837
+ }
1838
+
1839
+ fun generateDetailsRFID(temp: DetailsRFID?): JSONObject? {
1840
+ val result = JSONObject()
1841
+ temp ?: return null
1842
+ val input: DetailsRFID = temp
1843
+
1844
+ result.put("pa", input.pa)
1845
+ result.put("ca", input.ca)
1846
+ result.put("aa", input.aa)
1847
+ result.put("ta", input.ta)
1848
+ result.put("bac", input.bac)
1849
+ result.put("pace", input.pace)
1850
+ result.put("overallStatus", input.overallStatus)
1851
+
1852
+ return result
1853
+ }
1854
+
1855
+ fun vdsncDataDictionaryFromJSON(input: JSONObject): JSONObject {
1856
+ val temp = JSONObject(input.toString())
1857
+
1858
+ temp.put("Type", input.optString("type"))
1859
+ temp.put("Version", input.optInt("version"))
1860
+ temp.put("IssuingCountry", input.optString("issuingCountry"))
1861
+ temp.put("Message", input.optJSONObject("message"))
1862
+ temp.put("SignatureAlg", input.optString("signatureAlgorithm"))
1863
+ temp.put("Signature", bytesDataDictionaryFromJSON(input.optJSONObject("signature")))
1864
+ temp.put("Certificate", bytesDataDictionaryFromJSON(input.optJSONObject("certificate")))
1865
+ temp.put("CertificateChain", input.optJSONArray("certificateChain"))
1866
+ temp.put("Notifications", input.optJSONArray("notifications"))
1867
+
1868
+ return temp
1869
+ }
1870
+
1871
+ fun vdsncDataFromJSON(input: JSONObject) = VDSNCData.fromJson(vdsncDataDictionaryFromJSON(input))
1872
+
1873
+ fun generateVDSNCData(temp: VDSNCData?): JSONObject? {
1874
+ val result = JSONObject()
1875
+ temp ?: return null
1876
+ val input: VDSNCData = temp
1877
+
1878
+ result.put("type", input.type)
1879
+ result.put("version", input.version)
1880
+ result.put("issuingCountry", input.issuingCountry)
1881
+ result.put("message", input.message)
1882
+ result.put("signatureAlgorithm", input.signatureAlg)
1883
+ result.put("signature", generateBytesData(input.signature))
1884
+ result.put("certificate", generateBytesData(input.certificate))
1885
+ result.put("certificateChain", generateList(input.certificateChain, ::generateCertificateChain))
1886
+ result.put("notifications", generateLongArray(input.notifications))
1887
+
1888
+ return result
1889
+ }
1890
+
1891
+ fun bytesDataDictionaryFromJSON(input: JSONObject?): JSONObject? {
1892
+ input ?: return null
1893
+ val temp = JSONObject(input.toString())
1894
+
1895
+ temp.put("Data", input.optString("data"))
1896
+ temp.put("Length", input.optInt("length"))
1897
+ temp.put("Status", input.optLong("status"))
1898
+ temp.put("Type", input.optInt("type"))
1899
+
1900
+ return temp
1901
+ }
1902
+
1903
+ fun bytesDataFromJSON(input: JSONObject?) = BytesData.fromJson(bytesDataDictionaryFromJSON(input))
1904
+
1905
+ fun generateBytesData(temp: BytesData?): JSONObject? {
1906
+ val result = JSONObject()
1907
+ temp ?: return null
1908
+ val input: BytesData = temp
1909
+
1910
+ result.put("data", input.data)
1911
+ result.put("length", input.length)
1912
+ result.put("status", input.status)
1913
+ result.put("type", input.type)
1914
+
1915
+ return result
1916
+ }
1917
+
1918
+ fun generateLicense(temp: License?): JSONObject? {
1919
+ val result = JSONObject()
1920
+ temp ?: return null
1921
+ val input: License = temp
1922
+
1923
+ result.put("expiryDate", input.expiryDate?.toString())
1924
+ result.put("countryFilter", generateList(input.countryFilter))
1925
+ result.put("isRfidAvailable", input.isRfidAvailable)
1926
+
1927
+ return result
1928
+ }
1929
+
1930
+ fun generateDocReaderVersion(temp: DocReaderVersion?): JSONObject? {
1931
+ val result = JSONObject()
1932
+ temp ?: return null
1933
+ val input: DocReaderVersion = temp
1934
+
1935
+ result.put("api", input.api)
1936
+ result.put("core", input.core)
1937
+ result.put("coreMode", input.coreMode)
1938
+ result.put("database", generateDocReaderDocumentsDatabase(input.database))
1939
+
1940
+ return result
1941
+ }
1942
+
1943
+ fun docReaderDocumentsDatabaseFromJSON(input: JSONObject?): DocReaderDocumentsDatabase? {
1944
+ input ?: return null
1945
+ val temp = JSONObject(input.toString())
1946
+
1947
+ temp.put("id", input.optString("databaseID"))
1948
+ temp.put("export_date", input.optString("date"))
1949
+ temp.put("description", input.optString("databaseDescription"))
1950
+
1951
+ return DocReaderDocumentsDatabase.fromJson(temp)
1952
+ }
1953
+
1954
+ fun generateDocReaderDocumentsDatabase(temp: DocReaderDocumentsDatabase?): JSONObject? {
1955
+ val result = JSONObject()
1956
+ temp ?: return null
1957
+ val input: DocReaderDocumentsDatabase = temp
1958
+
1959
+ result.put("databaseID", input.databaseID)
1960
+ result.put("version", input.version)
1961
+ result.put("date", input.date)
1962
+ result.put("databaseDescription", input.databaseDescription)
1963
+ result.put("countriesNumber", input.countriesNumber)
1964
+ result.put("documentsNumber", input.documentsNumber)
1965
+ result.put("size", input.size as Long?)
1966
+
1967
+ return result
1968
+ }
1969
+
1970
+ fun documentReaderComparisonFromJSON(temp: JSONObject?): DocumentReaderComparison? {
1971
+ temp ?: return null
1972
+ val input: JSONObject = temp
1973
+ val result = DocumentReaderComparison()
1974
+
1975
+ result.sourceTypeLeft = input.optInt("sourceTypeLeft")
1976
+ result.sourceTypeRight = input.optInt("sourceTypeRight")
1977
+ result.status = input.optInt("status")
1978
+
1979
+ return result
1980
+ }
1981
+
1982
+ fun generateDocumentReaderComparison(temp: DocumentReaderComparison?): JSONObject? {
1983
+ val result = JSONObject()
1984
+ temp ?: return null
1985
+ val input: DocumentReaderComparison = temp
1986
+
1987
+ result.put("sourceTypeLeft", input.sourceTypeLeft)
1988
+ result.put("sourceTypeRight", input.sourceTypeRight)
1989
+ result.put("status", input.status)
1990
+
1991
+ return result
1992
+ }
1993
+
1994
+ fun documentReaderRFIDOriginFromJSON(temp: JSONObject?): DocumentReaderRfidOrigin? {
1995
+ temp ?: return null
1996
+ val input: JSONObject = temp
1997
+ val result = DocumentReaderRfidOrigin()
1998
+
1999
+ result.dg = input.optInt("dg")
2000
+ result.dgTag = input.optInt("dgTag")
2001
+ result.entryView = input.optInt("entryView")
2002
+ result.tagEntry = input.optInt("tagEntry")
2003
+
2004
+ return result
2005
+ }
2006
+
2007
+ fun generateDocumentReaderRFIDOrigin(temp: DocumentReaderRfidOrigin?): JSONObject? {
2008
+ val result = JSONObject()
2009
+ temp ?: return null
2010
+ val input: DocumentReaderRfidOrigin = temp
2011
+
2012
+ result.put("dg", input.dg)
2013
+ result.put("dgTag", input.dgTag)
2014
+ result.put("entryView", input.entryView)
2015
+ result.put("tagEntry", input.tagEntry)
2016
+
2017
+ return result
2018
+ }
2019
+
2020
+ fun documentReaderTextSourceFromJSON(temp: JSONObject?): DocumentReaderTextSource? {
2021
+ temp ?: return null
2022
+ val input: JSONObject = temp
2023
+ val result = DocumentReaderTextSource()
2024
+
2025
+ result.sourceType = input.optInt("sourceType")
2026
+ result.source = input.optString("source")
2027
+ result.validityStatus = input.optInt("validityStatus")
2028
+
2029
+ return result
2030
+ }
2031
+
2032
+ fun generateDocumentReaderTextSource(temp: DocumentReaderTextSource?): JSONObject? {
2033
+ val result = JSONObject()
2034
+ temp ?: return null
2035
+ val input: DocumentReaderTextSource = temp
2036
+
2037
+ result.put("sourceType", input.sourceType)
2038
+ result.put("source", input.source)
2039
+ result.put("validityStatus", input.validityStatus)
2040
+
2041
+ return result
2042
+ }
2043
+
2044
+ fun documentReaderSymbolFromJSON(temp: JSONObject?): DocumentReaderSymbol? {
2045
+ temp ?: return null
2046
+ val input: JSONObject = temp
2047
+ val result = DocumentReaderSymbol()
2048
+
2049
+ result.code = input.optInt("code")
2050
+ result.probability = input.optInt("probability")
2051
+ result.rect = rectFromJSON(input.optJSONObject("rect"))
2052
+
2053
+ return result
2054
+ }
2055
+
2056
+ fun generateDocumentReaderSymbol(temp: DocumentReaderSymbol?): JSONObject? {
2057
+ val result = JSONObject()
2058
+ temp ?: return null
2059
+ val input: DocumentReaderSymbol = temp
2060
+
2061
+ result.put("code", input.code)
2062
+ result.put("rect", generateRect(input.rect))
2063
+ result.put("probability", input.probability)
2064
+
2065
+ return result
2066
+ }
2067
+
2068
+ fun documentReaderValidityFromJSON(temp: JSONObject?): DocumentReaderValidity? {
2069
+ temp ?: return null
2070
+ val input: JSONObject = temp
2071
+ val result = DocumentReaderValidity()
2072
+
2073
+ result.sourceType = input.optInt("sourceType")
2074
+ result.status = input.optInt("status")
2075
+
2076
+ return result
2077
+ }
2078
+
2079
+ fun generateDocumentReaderValidity(temp: DocumentReaderValidity?): JSONObject? {
2080
+ val result = JSONObject()
2081
+ temp ?: return null
2082
+ val input: DocumentReaderValidity = temp
2083
+
2084
+ result.put("sourceType", input.sourceType)
2085
+ result.put("status", input.status)
2086
+
2087
+ return result
2088
+ }
2089
+
2090
+ fun barcodeTypeArrayFromJson(temp: JSONArray?): Array<String?>? {
2091
+ temp ?: return null
2092
+ val input: JSONArray = temp
2093
+
2094
+ val result = arrayOfNulls<String>(input.length())
2095
+ for (i in 0 until input.length()) result[i] = BarcodeType.valueOf(input.getInt(i))
2096
+
2097
+ return result
2098
+ }
2099
+
2100
+ fun generateBarcodeTypeArray(temp: Array<String?>?): JSONArray? {
2101
+ temp ?: return null
2102
+ val input: Array<String?> = temp
2103
+ val result = JSONArray()
2104
+
2105
+ for (s in input) result.put(generateBarcodeType(s))
2106
+
2107
+ return result
2108
+ }
2109
+
2110
+ fun generateBarcodeType(input: String?) = when (input) {
2111
+ "bct_Code128" -> 1
2112
+ "bct_Code39" -> 2
2113
+ "bct_EAN8" -> 3
2114
+ "bct_ITF" -> 4
2115
+ "bct_PDF417" -> 5
2116
+ "bct_STF" -> 6
2117
+ "bct_MTF" -> 7
2118
+ "bct_IATA" -> 8
2119
+ "bct_CODABAR" -> 9
2120
+ "bct_UPCA" -> 10
2121
+ "bct_CODE93" -> 11
2122
+ "bct_UPCE" -> 12
2123
+ "bct_EAN13" -> 13
2124
+ "bct_QRCODE" -> 14
2125
+ "bct_AZTEC" -> 15
2126
+ "bct_DATAMATRIX" -> 16
2127
+ "bct_ALL_1D" -> 17
2128
+ "bct_Code11" -> 18
2129
+ "bct_JABCODE" -> 19
2130
+ else -> 0
2131
+ }
2132
+
2133
+ fun documentReaderResultsFromJSON(temp: JSONObject?): DocumentReaderResults? {
2134
+ temp ?: return null
2135
+ val input: JSONObject = temp
2136
+ val result = DocumentReaderResults()
2137
+
2138
+ result.chipPage = input.optInt("chipPage")
2139
+ result.processingFinishedStatus = input.optInt("processingFinishedStatus")
2140
+ result.elapsedTime = input.optInt("elapsedTime")
2141
+ result.elapsedTimeRFID = input.optInt("elapsedTimeRFID")
2142
+ result.morePagesAvailable = input.optInt("morePagesAvailable")
2143
+ result.graphicResult = documentReaderGraphicResultFromJSON(input.optJSONObject("graphicResult"))
2144
+ result.textResult = documentReaderTextResultFromJSON(input.optJSONObject("textResult"))
2145
+ result.documentPosition = listFromJSON(input.optJSONArray("documentPosition"), ::elementPositionFromJSON)!!
2146
+ result.barcodePosition = listFromJSON(input.optJSONArray("barcodePosition"), ::elementPositionFromJSON)!!
2147
+ result.mrzPosition = listFromJSON(input.optJSONArray("mrzPosition"), ::elementPositionFromJSON)!!
2148
+ result.imageQuality = listFromJSON(input.optJSONArray("imageQuality"), ::imageQualityGroupFromJSON)!!
2149
+ result.rawResult = input.optString("rawResult")
2150
+ result.rfidSessionData = rfidSessionDataFromJSON(input.optJSONObject("rfidSessionData"))
2151
+ result.authenticityResult = documentReaderAuthenticityResultFromJSON(input.optJSONObject("authenticityResult"))
2152
+ result.barcodeResult = documentReaderBarcodeResultFromJSON(input.optJSONObject("barcodeResult"))
2153
+ result.rfidSessionData = rfidSessionDataFromJSON(input.optJSONObject("rfidSessionData"))
2154
+ result.documentType = listFromJSON(input.optJSONArray("documentType"), ::documentReaderDocumentTypeFromJSON)!!
2155
+ result.status = documentReaderResultsStatusFromJSON(input.optJSONObject("status"))!!
2156
+ result.vdsncData = vdsncDataFromJSON(input.optJSONObject("vdsncData")!!)
2157
+ result.transactionInfo = transactionInfoFromJSON(input.optJSONObject("transactionInfo"))
2158
+
2159
+ return result
2160
+ }
2161
+
2162
+ fun generateDocumentReaderResults(temp: DocumentReaderResults?, context: Context?): JSONObject? {
2163
+ val result = JSONObject()
2164
+ temp ?: return null
2165
+ val input: DocumentReaderResults = temp
2166
+
2167
+ result.put("chipPage", input.chipPage)
2168
+ result.put("processingFinishedStatus", input.processingFinishedStatus)
2169
+ result.put("elapsedTime", input.elapsedTime)
2170
+ result.put("elapsedTimeRFID", input.elapsedTimeRFID)
2171
+ result.put("morePagesAvailable", input.morePagesAvailable)
2172
+ result.put("graphicResult", generateDocumentReaderGraphicResult(input.graphicResult, context))
2173
+ result.put("textResult", generateDocumentReaderTextResult(input.textResult, context))
2174
+ result.put("documentPosition", generateList(input.documentPosition, ::generateElementPosition))
2175
+ result.put("barcodePosition", generateList(input.barcodePosition, ::generateElementPosition))
2176
+ result.put("mrzPosition", generateList(input.mrzPosition, ::generateElementPosition))
2177
+ result.put("imageQuality", generateList(input.imageQuality, ::generateImageQualityGroup))
2178
+ result.put("rawResult", input.rawResult)
2179
+ result.put("rfidSessionData", generateRFIDSessionData(input.rfidSessionData, context))
2180
+ result.put("authenticityResult", generateDocumentReaderAuthenticityResult(input.authenticityResult, context))
2181
+ result.put("barcodeResult", generateDocumentReaderBarcodeResult(input.barcodeResult))
2182
+ result.put("documentType", generateList(input.documentType, ::generateDocumentReaderDocumentType))
2183
+ result.put("status", generateDocumentReaderResultsStatus(input.status))
2184
+ result.put("vdsncData", generateVDSNCData(input.vdsncData))
2185
+ result.put("transactionInfo", generateTransactionInfo(input.transactionInfo))
2186
+
2187
+ return result
2188
+ }